にJavaコードsipnetを変換相談が必要です:約私はJavaコード次ている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()
アプリ(またはシステム?)文字セットに依存して、同じではないことがあります。- 変換された文字は、文字と同じではない場合があります。
また、エラーThe specificed key is not valid size
も発生します。
私はステップバイステップ変換を行っていますので、サンプルの入出力データはありません。申し訳ありません。エラーがどこにあるのか、それを修正する方法を教えてください。
ようこそ!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –
@JoeC私は既にデバッガを使用していますが、私はそれをどのように(中間レベルのプログラマとして)使用するのか知っています。問題は私がJavaを知らないことです。質問をよくお読みください。 – Sakura