에 자바 코드 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();
}
}
그러나 자바 코드와 같은 결과는 나오지 않는다.
자바를 모르겠습니다. 그러나 내가 검색 한 내용에서, 나는 오류 다음있을 수 있습니다 생각 :
key
KEY_STRING.getBytes()
앱 (또는 시스템?) 캐릭터 세트에 따라로서, 동일하지 않을 수 있습니다.- 변환 된 알고리즘이 신호와 다를 수 있습니다.
The specificed key is not valid size
도 표시됩니다.
샘플 입력 및 출력 데이터가 없으므로 단계별 변환을 수행하고 있습니다. 죄송합니다. 오류가있는 위치와 오류를 수정하는 방법을 제안 하시겠습니까?
Welcome to Stack Overflow! 디버거를 사용하는 법을 배워야 할 것 같습니다. [보완적인 디버깅 기술] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참고하십시오. 나중에 문제가 계속되는 경우 자세한 내용을 알려 주시기 바랍니다. –
@JoeC 이미 디버거를 사용하고 있으며 (중간 수준의 프로그래머로서) 어떻게 사용하는지 알고 있습니다. 문제는 Java를 모른다는 것입니다. 질문을주의 깊게 읽으십시오. – Sakura