日期:2014-05-18  浏览次数:21021 次

java代码翻译成C#,谢谢
//java代码如下
MessageDigest md5 = MessageDigest.getInstance("SHA");
//请翻译成C#代码

------解决方案--------------------
c#里有密码的命名空间,里面有md5、rsa的算法,好像叫什么security什么的
------解决方案--------------------
是不是这样啊?
System.Security.Cryptography.MD5 MD =System.Security.Cryptography.MD5.Create("SHA");
------解决方案--------------------
SHA已经被破解,应使用SHA1。
再说了,这样翻译一句没有实际意义,应该将一段有意义的java代码,用C#实现就可以,不一定一一对应。
.net中有专门的类处理加密码解密问题,直接查看帮助就可以。
比如:
C# code
    
//创建SHA1类的实例,SHA1是抽象类(abstract)所以不能直接实例化
SHA1 sha1 = SHA1.Create(); 
//Unicode.GetBytes获得string的Unicode(双字节字符)字节流
byte[] hashedPassword = sha1.ComputeHash(Encoding.Unicode.GetBytes("abcdefg"));

------解决方案--------------------
C# code
//得到srcStr的哈希值(16进制),根据你需要的算法"MD5"可以改为"SHA1"
string str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(srcStr, "MD5");

------解决方案--------------------
探讨
谢谢!在System.Security.Cryptography下面后很多类,象下面的
System.Security.Cryptography.SHA1;
System.Security.Cryptography.SHA1CryptoServiceProvider;
System.Security.Cryptography.SHA256;
等,我都测试过了,但是好像和我想要的结果不一致

------解决方案--------------------
Convert.ToBase64String
------解决方案--------------------
答案贴上来啊
别忘了
谢谢
------解决方案--------------------
看看PasswordDeriveBytes类是不是你要找的东西,你可以指定要计算的数据和salt值,然后输出经过salt处理的加密密钥,再使用这个加密密钥进行下一步计算。
------解决方案--------------------
貌似很多人都忘记一个问题,不同系统用的编码是不同的。请问Java处理字符串时默认用的编码是什么?