System.Security.Cryptography에는 DES 디코드 메서드가 포함되어 있지만 Windows Phone 8.1 프로그래밍 용 Windows.Security.Cryptography 네임 스페이스에는 DES 디코딩 방법이 포함되어 있지 않습니다.C# WP 8.1의 DES 디코딩
방금 클래스를 찾았습니다. Windows.Security.Cryptography.Core.SymmetricAlgorithmNames.DesCbc
, 하지만 DES 암호화 된 문자열을 해독하는 방법을 알지 못합니다. 나는 네가 생각하는 모든 생각을 고맙게 생각한다.
나는 그것을 얻었습니다. 코드 조각은 :
strAsymmetricAlgName = SymmetricAlgorithmNames.DesCbc;
SymmetricKeyAlgorithmProvider objAlgProv = SymmetricKeyAlgorithmProvider.OpenAlgorithm(strAsymmetricAlgName);
CryptographicKey keyPair = objAlgProv.CreateSymmetricKey(CryptographicBuffer.ConvertStringToBinary("xxx", BinaryStringEncoding.Utf8));
IBuffer val = CryptographicEngine.Decrypt(keyPair, CryptographicBuffer.ConvertStringToBinary(encodedData, BinaryStringEncoding.Utf8), null);
byte[] arr = val.ToArray();
string returnValue = System.Text.Encoding.UTF8.GetString(arr, 0, arr.Length);
나는 현재이 null
이유의 초기화 벡터를 모른다. 그게 옳은지 아직 확실하지는 않습니다. 데스 문자열은 자바 programm에 의해 암호화되어
Cipher c = Cipher.getInstance("DES");
Key k = new SecretKeySpec(pass.getBytes(), "DES");
c.init(Cipher.ENCRYPT_MODE, k);
OutputStream cos = new CipherOutputStream(out, c);
cos.write(bytes);
cos.close()
나는 초기화 벡터에 대한 정보를 찾을 수 없습니다.
왜 DES입니까? 56 비트 키가 안전하지 않습니다. – CodesInChaos
당신도 알지만, 여전히 암호화가없는 것보다 낫습니다. 유스 케이스는 실제로 더 높은 암호화를 필요로하지 않으며 DES 암호화는 이미 오래전에 구축되었습니다. –
DES는 아무것도없는 것보다 간신히 좋습니다. DES 키는 이미 15 년 전 24 시간 동안 금이 갔을 수 있습니다. (실제로 누군가가 당신의 시스템이 안전하다고 믿게 만들 수 있기 때문에 아무것도없는 것보다 * 더 나쁠 수 있습니다.) 가능하다면 AES로 변경하십시오. – ntoskrnl