用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-15
for (int a = 0; a <8; a ++) blockValue2[a] = (byte) ((((byte)blockValue2[a] & 0xff) >>> 1) & 0xff); System.arraycopy(blockValue2, 0, blockValue1, 0, blockValue2.length); }//if(x % 2 == 1) for (int a = 0; a <8; a ++) blockValue1[a] = (byte) ((((byte)blockValue1[a] & 0xff) << 1) & 0xff); //Step 6: for (int b = 0; b <8; b ++) secretKey[b] ^= blockValue1[b]; }// for //Step 7: secretKey= setParity(secretKey); //Step 8: if (isWeakKey(secretKey)) secretKey = getStrongKey(secretKey); //Step 9: secretKey = getFinalKey(paddedByteArray, secretKey); //Step 10: secretKey = setParity(secretKey); if (isWeakKey(secretKey)) secretKey = getStrongKey(secretKey); return secretKey; }//generateKey public byte[] getFinalKey (byte data[], byte key[]) { //The cipher instance with DES algo and CBC mode. cipher = new CBCBlockCipher( new DESEngine()); kp = new KeyParameter(key); iv = new ParametersWithIV (kp, key); cipher.init(true, iv); byte encKey[] = new byte[data.length]; byte ivBytes[] = new byte[8]; for(int x = 0; x < data.length / 8; x ++) { cipher.processBlock(data, x*8, encKey, x*8); System.arraycopy(encKey, x*8, ivBytes, 0, 8); iv = new ParametersWithIV (kp, ivBytes); cipher.init (true, iv); } return ivBytes; }//getFinalKey public byte[] setParity (byte byteValue[]) { for(int x=0; x<8; x++) byteValue[x] = parityValues[byteValue[x] & 0xff]; return byteValue; } // Checks weak key public boolean isWeakKey (byte keyValue[]) { byte weakKeyValue[]; for(int x = 0; x < weakKeyByteValues.length; x++) { weakKeyValue = weakKeyByteValues[x]; if(weakKeyValue.equals(keyValue)) return true; } return false; }//isWeakKey // Corrects the weak key by exclusive OR with 0xf0 constant. public byte[] getStrongKey(byte keyValue[]) { keyValue[7] ^= 0xf0; return keyValue; }//checkWeakKey // Encodes string with ISO-Lation encodings public byte[] encodeString (String str) { byte encodedByteArray[] = new byte[str.length()]; try { encodedByteArray = str.getBytes("8859_1"); } catch(java.io.UnsupportedEncodingException ue) |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求 - 编程入门网的所有评论