Java代码:
1 KeyGenerator aesGen = KeyGenerator.getInstance("AES"); 2 SecureRandom secureRadmon= new SecureRandom().getInstance("SHA1PRNG"); 3 secureRadmon.setSeed(aesKey.getBytes()); 4 aesGen.init(128,secureRadmon); 5 SecretKey secretKey =aesGen.generateKey();
.Net(C#)代码:
1 byte[] keyArray = null; 2 using (var sha1 = new SHA1CryptoServiceProvider()) 3 { 4 byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(aesKey)); 5 var rd = sha1.ComputeHash(hash); 6 keyArray = rd.Take(16).ToArray(); 7 }
------------------附对应的AES/ECB/PKCS5Padding加密-----------------------
1 private static string encryptAES(string keyStr) 2 { 3 byte[] plainText = System.Text.Encoding.UTF8.GetBytes(keyStr); 4 Base64Encoder encoder = new Base64Encoder(); 5 RijndaelManaged AesCipher = new RijndaelManaged(); 6 AesCipher.KeySize = 128; // 192, 256 7 AesCipher.BlockSize = 128; 8 AesCipher.Mode = CipherMode.ECB; 9 AesCipher.Padding = PaddingMode.PKCS7; 10 //AesCipher.IV = keyArray; 11 //AesCipher.Key = keyArray; 12 ICryptoTransform crypto = AesCipher.CreateEncryptor(); 13 byte[] cipherText = crypto.TransformFinalBlock(plainText, 0, plainText.Length); 14 string aesBase64 = Regex.Replace(encoder.GetEncoded(cipherText), @"[\r\n]+", ""); 15 return aesBase64; 16 }