我有以下的Java代碼:需要諮詢有關Java代碼sipnet轉換爲C#
static final String KEY_STRING = "MOGO_APP";
public static byte[] decrypt(byte[] encrypt)
{
byte[] bArr = null;
Key key = new SecretKeySpec(KEY_STRING.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(2, key);
bArr = cipher.doFinal(encrypt);
return bArr;
}
我想它翻譯成C#。這是我做的:
const string KEY_STRING = "MOGO_APP";
public static byte[] decrypt(byte[] encrypt)
{
byte[] key = Encoding.ASCII.GetBytes(KEY_STRING);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
cryptoProvider.Key = key;
using (MemoryStream mm = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(mm,
cryptoProvider.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(encrypt, 0, encrypt.Length);
}
return mm.ToArray();
}
}
但它沒有給出與Java代碼相同的結果。
我不知道的Java。但是,從我搜索,我想可能有以下錯誤:
key
可能不一樣,因爲KEY_STRING.getBytes()
依賴於應用程序(或系統?)字符集。- 轉換後alogrithm可以不與一部開拓創新相同。
我也得到錯誤The specificed key is not valid size
。
我做的一步一步的轉換,所以我沒有樣品輸入和輸出數據,對不起。你會建議錯誤在哪裏以及如何解決?
歡迎來到Stack Overflow!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然有問題,請隨時返回更多詳情。 –
@JoeC我已經使用調試器,我知道如何使用它(作爲中級程序員)。問題是我不知道Java。請仔細閱讀問題。 – Sakura