我們被送到這個公式來加密用Java編寫的字符串:從Java轉換到C#:簡單的代碼來重新編碼字符串
String myInput = "test1234";
MessageDigest md = MessageDigest.getInstance("SHA");
byte[] myD = md.digest(myInput.getBytes());
BASE64Encoder en64 = new BASE64Encoder();
String myOutput = new String (
Java.net.URLEncoder.encode(en64.encode(myD)));
// myOutput becomes "F009U%2Bx99bVTGwS3cQdHf%2BJcpCo%3D"
我們在C#寫這個嘗試:
System.Security.Cryptography.SHA1 sha1 =
new System.Security.Cryptography.SHA1CryptoServiceProvider();
string myOutput = HttpUtility.UrlEncode(
Convert.ToBase64String(
sha1.ComputeHash(
ASCIIEncoding.Default.GetBytes(myInput))));
但是輸出沒有接近相同的地方。它甚至沒有百分號。任何人都會知道我們要出錯的地方嗎?