求助,将以下java(MD5加密算法)代码转换成C#?
package com.oloa.common.crypt;import org.jasypt.digest.StandardStringDigester;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.util.password.rfc2307.RFC2307MD5PasswordEncryptor;
public class CipherUtil {
public static String encypt(String inputStr){
RFC2307MD5PasswordEncryptor enpt = new RFC2307MD5PasswordEncryptor();
return enpt.encryptPassword(inputStr);
}
public static void main(String[] args){
String s1 = "000000";
String s2 = "123456";
String s3 = "567890";
System.out.println(s1+" "+encypt(s1));
System.out.println(s2+" "+encypt(s2));
System.out.println(s3+" "+encypt(s3));
}
}
--------------------编程问答--------------------
using System;--------------------编程问答--------------------
using System.Security.Cryptography;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
String s1 = "000000";
String s2 = "123456";
String s3 = "567890";
Console.WriteLine(MD5Encrypt(s1));
Console.WriteLine(MD5Encrypt(s2));
Console.WriteLine(MD5Encrypt(s3));
}
/// <summary>
/// 给一个字符串进行MD5加密
/// </summary>
/// <param name="strText">待加密字符串</param>
/// <returns>加密后的字符串</returns>
public static string MD5Encrypt(string strText)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strText));
return System.Text.Encoding.Default.GetString(result);
}
}
}
不知道这样的结果会不会相同。
Java引用了RFC2003的包,C#版的使用了内置的MD5摘要算法。
lz最好比对一下结果。 --------------------编程问答-------------------- 就是因为不一样,我才在这里找的答案,JAVA中的结果是:
000000 ZwsUcorZkCrsujLiL6T2vQ==
123456 4QrcOUm6Wau+VuBX8g+IPg==
567890 ugCBnyYyh68f8BAMWjIzVQ==
不知道为什么是这个结果,我在C#中怎么配对,也对不出来这个结果,我在C#中用MD5加密之后得到的要么是16位的密文,要么就是32位的密文。
补充:.NET技术 , C#