>백엔드 개발 >PHP 튜토리얼 >如何使php的MD5与C#的MD5一致?

如何使php的MD5与C#的MD5一致?

WBOY
WBOY원래의
2016-06-06 20:45:582581검색

有c#生成MD5的代码如下:

<code>   class CreateMD5
    {
        static void Main(string[] args)
        {
            string source = "提问指南";
            using (MD5 md5Hash = MD5.Create())
            {
                string hash = GetMd5Hash(md5Hash, source);

                Console.WriteLine( hash);
            }
        }    
        static string GetMd5Hash(MD5 md5Hash, string input)
        {
            //这里是 Unicode
            byte[] data = md5Hash.ComputeHash(Encoding.Unicode.GetBytes(input));

            StringBuilder sBuilder = new StringBuilder();

            for (int i = 0; i </code>

上述代码生成的MD5是 f5da53705563c657581a6d0853286fdc
现在问题是,c#生成的MD5 与 PHP 生成的MD5 不一致

由于业务限制,不能更改c#代码,只能从PHP下手。

回复内容:

有c#生成MD5的代码如下:

<code>   class CreateMD5
    {
        static void Main(string[] args)
        {
            string source = "提问指南";
            using (MD5 md5Hash = MD5.Create())
            {
                string hash = GetMd5Hash(md5Hash, source);

                Console.WriteLine( hash);
            }
        }    
        static string GetMd5Hash(MD5 md5Hash, string input)
        {
            //这里是 Unicode
            byte[] data = md5Hash.ComputeHash(Encoding.Unicode.GetBytes(input));

            StringBuilder sBuilder = new StringBuilder();

            for (int i = 0; i </code>

上述代码生成的MD5是 f5da53705563c657581a6d0853286fdc
现在问题是,c#生成的MD5 与 PHP 生成的MD5 不一致

由于业务限制,不能更改c#代码,只能从PHP下手。

md5前操作一步

<code>$tmp = mb_convert_encoding('提问指南', 'utf-16le', 'utf8');
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.