求大牛把下面这段翻译成java代码,在线等,急急急!!! public static string AESEncrypt(string str, string key, string iv, bool haveprefix = true)
{
byte[] data = Encoding.UTF8.GetBytes(str);
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = System.Text.Encoding.UTF8.GetBytes(key);
rijndaelCipher.IV = System.Text.Encoding.UTF8.GetBytes(iv); ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
byte[] encData = transform.TransformFinalBlock(data, 0, data.Length); if (haveprefix)
{
byte[] prefix = new byte[16];
Random rand = new Random();
rand.NextBytes(prefix);
byte[] lengthByte = BitConverter.GetBytes(encData.Length);
var list = prefix.ToList();
list.AddRange(lengthByte);
list.AddRange(encData);
encData = list.ToArray();
}
return Convert.ToBase64String(encData);
} public static string AESDecrypt(string base64Str, string key, string iv, bool haveprefix = true)
{
var data = Convert.FromBase64String(base64Str).ToList();
byte[] encryptedData = haveprefix ? data.GetRange(20, data.Count - 20).ToArray() : data.ToArray();
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = System.Text.Encoding.UTF8.GetBytes(key); ;
byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);
rijndaelCipher.IV = ivBytes;
ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
return Encoding.UTF8.GetString(plainText);
}
{
byte[] data = Encoding.UTF8.GetBytes(str);
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = System.Text.Encoding.UTF8.GetBytes(key);
rijndaelCipher.IV = System.Text.Encoding.UTF8.GetBytes(iv); ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
byte[] encData = transform.TransformFinalBlock(data, 0, data.Length); if (haveprefix)
{
byte[] prefix = new byte[16];
Random rand = new Random();
rand.NextBytes(prefix);
byte[] lengthByte = BitConverter.GetBytes(encData.Length);
var list = prefix.ToList();
list.AddRange(lengthByte);
list.AddRange(encData);
encData = list.ToArray();
}
return Convert.ToBase64String(encData);
} public static string AESDecrypt(string base64Str, string key, string iv, bool haveprefix = true)
{
var data = Convert.FromBase64String(base64Str).ToList();
byte[] encryptedData = haveprefix ? data.GetRange(20, data.Count - 20).ToArray() : data.ToArray();
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = System.Text.Encoding.UTF8.GetBytes(key); ;
byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);
rijndaelCipher.IV = ivBytes;
ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
return Encoding.UTF8.GetString(plainText);
}
解决方案 »
- his系统有没有用java开发的?
- JAVA里如何获得指定大小字体的字符转成为点阵信息?
- File 问题。。。。。。。。。。。。。。。。。。
- 【java】 多重修饰符修饰某个类/方法/域
- 最简单的从键盘输入的输入流怎么写?
- Cannot create iterator for this collection怎么解决
- JTextArea一定要等到进程结束后才会输出结果么
- java怎样播放声音文件
- 当读取数据流完成后,如何返回流的开头?
- 这是什么问题:java.lang.InstantiationException: `net.cnnic.registrar.RRPClientSession' has no public zero-arg constructor
- mina的getLastReaderIdleTime()获取的是什么时间啊,急求!!!!!
- Java中^这个符号怎么用,
RijndaelManaged是微软的,直接用就行
这还要翻译吗?网上找下java相关的加密 解密
http://blog.csdn.net/hbcui1984/article/details/5201247