用Kerberos为J2ME应用程序上锁,第3部分 - 建立与电子银行的安全通信(下) - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-15
Data (message.getBytes()); /***** Step 2: *****/ byte[] confounder = concatenateBytes (getRandomNumber(), getRandomNumber ()); /***** Step 3: *****/ byte[] messageBytes = concatenateBytes(confounder, paddedDataBytes); byte[] digestBytes = getMD5DigestValue( concatenateBytes (tokenHeader,messageBytes)); CBCBlockCipher cipher = new CBCBlockCipher(new DESEngine()); KeyParameter kp = new KeyParameter(sub_sessionKey); ParametersWithIV iv = new ParametersWithIV (kp, new byte[8]); cipher.init(true, iv); byte processedBlock[] = new byte[digestBytes.length]; byte message_cksum[] = new byte[8]; for(int x = 0; x < digestBytes.length/8; x ++) { cipher.processBlock(digestBytes, x*8, processedBlock, x*8); System.arraycopy(processedBlock, x*8, message_cksum, 0, 8); iv = new ParametersWithIV (kp, message_cksum); cipher.init (true, iv); } /***** Step 4: *****/ byte[] sequenceNumber = { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00 }; sequenceNumber[0] = (byte)seqNumber; /***** Step 5: *****/ byte[] encryptedSeqNumber = encrypt(sub_sessionKey, sequenceNumber, message_cksum); /***** Step 6: *****/ byte[] encryptedMessage = encrypt(getContextKey(sub_sessionKey), messageBytes, new byte[8]); byte[] messageToken = getTagAndLengthBytes ( ASN1DataTypes.APPLICATION_TYPE, 0, concatenateBytes ( gssHeaderComponents, concatenateBytes ( tokenHeader, concatenateBytes ( encryptedSeqNumber, concatenateBytes ( message_cksum, encryptedMessage ) ) ) ) ); /***** Step 7: *****/ outStream.writeInt(messageToken.length); outStream.write(messageToken); outStream.flush(); /***** Step 8: *****/ byte[] responseToken = new byte[inStream.readInt()]; inStream.readFully(responseToken); return responseToken; } catch(IOException ie){ ie.printStackTrace(); } catch(Exception e){ e.printSta |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用Kerberos为J2ME应用程序上锁,第3部分 - 建立与电子银行的安全通信(下) - 编程入门网的所有评论