小编Jay*_*asi的帖子

Java和C之间的加密差异#

嗨,我想弄清楚如何复制在C#中完成的文本加密,但在Java中.代码的一部分仍然困扰着我,似乎无法在C#中找到答案:

PasswordDeriveBytes myPass = new PasswordDeriveBytes(String Password, byte[] Salt);
Trp.Key = myPass.GetBytes(24);
Trp.IV = myPass.GetBytes(8);
Run Code Online (Sandbox Code Playgroud)

基本上什么相当于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);
Run Code Online (Sandbox Code Playgroud)

但似乎无法让它跨平台工作.基本解码代码被设置(我不能改变在C#3.5),我试图在Java编码,使得C#代码可以解码.

任何帮助将不胜感激.

c# java encryption

5
推荐指数
1
解决办法
2234
查看次数

标签 统计

c# ×1

encryption ×1

java ×1