【发布时间】:2011-05-24 22:35:02
【问题描述】:
我正在尝试将一些 C# ASP.NET Web 服务集成到我的 PHP 应用程序中,但是存在一个大问题。 C# webservice 进行加密的方式与 PHP 进行 MD5 加密的方式不兼容。我找到了将 C# MD5 转换为 PHP MD5 的解决方案,但是我无法更改 C# 代码。有没有办法改变 PHP 进行 MD5 加密以匹配 C# 的方式? c# 加密的工作原理是这样的:
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(stringToEncrypt);
String myString = Convert.ToBase64String(MD5.ComputeHash(bs));
【问题讨论】:
-
也尝试分享您的 PHP 代码。而且从技术上讲,MD5 不是加密,而是一种单向哈希算法。
-
MD5 和 Base64 都不是encryptions; MD5 是cryptographic hash function,Base64 是base conversion,用 64 个可打印的 ASCII 字符表示二进制数据。
-
我的代码是base64_encode(md5(utf8_encode('123456789')))
-
显然我需要做 base64_encode(md5('123456789', true))
标签: c# php encryption md5 base64