c# расшифровка из быстрого шифрования - PullRequest
0 голосов
/ 13 апреля 2020

В Swift я написал этот код для шифрования строки

func Encrypt2(_ input:String)->String?{
    let key = "123456abcdefcdhs"
    do{
        let encrypted: Array<UInt8> = try AES(key: key, iv: key, padding: .pkcs5).encrypt(Array(input.utf8))
        return encrypted.toBase64()?.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)!
    }catch{

    }
    return nil
}

И в c# код для расшифровки такой:

string key = "123456abcdefcdhs";
            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            rijndaelCipher.Mode = CipherMode.CBC;
            rijndaelCipher.Padding = PaddingMode.PKCS7;

            rijndaelCipher.KeySize = 0x80;
            rijndaelCipher.BlockSize = 0x80;
            byte[] encryptedData = Convert.FromBase64String(textToDecrypt);
            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);
            byte[] keyBytes = new byte[0x10];
            int len = pwdBytes.Length;
            if (len > keyBytes.Length)
            {
                len = keyBytes.Length;
            }
            Array.Copy(pwdBytes, keyBytes, len);
            rijndaelCipher.Key = keyBytes;
            rijndaelCipher.IV = keyBytes;
            byte[] plainText = rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0, encryptedData.Length);
            return Encoding.UTF8.GetString(plainText);

Шифрование работает нормально, но когда дело доходит до c# расшифровка ... дай мне ошибку, скажем, длина base64. Я попытался изменить .pkcs5 на .pkcs7, но все равно не работает. что не так с кодом?

Строка base64 -> aMtLgvWQOguK + GPbGT / Jxw == иногда строка -> aMtLgvWQOguK GPbGT / Jxw ==

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...