嗨,我想弄清楚如何复制在C#中完成的文本加密,但在Java中.代码的一部分仍然困扰着我,似乎无法在C#中找到答案:
PasswordDeriveBytes myPass = new PasswordDeriveBytes(String Password, byte[] Salt);
Trp.Key = myPass.GetBytes(24);
Trp.IV = myPass.GetBytes(8);
基本上什么相当于Java中的这段代码? 更新:使用对PasswordDeriveBytes所提供的代码(第二片段)我能够完美地复制C#代码.谢谢Maarten Bodewes.
BASE64Encoder base64 = new BASE64Encoder();
PasswordDeriveBytes i_Pass = new PasswordDeriveBytes(passWord, saltWordAsBytes);
byte[] keyBytes = i_Pass.getBytes(24);
byte[] ivBytes = i_Pass.getBytes(8);
Cipher c3des = Cipher.getInstance("DESede/CBC/PKCS5Padding");
SecretKeySpec myKey = new SecretKeySpec(keyBytes, "DESede");
IvParameterSpec ivspec = new IvParameterSpec(ivBytes);
c3des.init (Cipher.ENCRYPT_MODE, myKey, ivspec);
encrytpedTextAsByte  = c3des.doFinal(plainTextAsBytes);
encryptedText  = base64.encode(encrytpedTextAsByte);
但似乎无法让它跨平台工作.基本解码代码被设置(我不能改变在C#3.5),我试图在Java编码,使得C#代码可以解码.
任何帮助将不胜感激.