System.Security.Cryptography включает метод декодирования DES, но пространство имен Windows.Security.Cryptography для программирования Windows Phone 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
. Я до сих пор не уверен на 100%, что это правильно. Строка DES шифруется программой Java:
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()
Я не могу найти никакой информации о векторе инициализации.