기본 암호화 방법을 사용하고 있습니다. RijndaelManaged를 사용하고 있습니다. 나는이 코드를 오래 전에 어딘가에서 얻었지만 어디에서 기억할 수는 없다.지정된 초기화 벡터 (IV)가이 알고리즘의 블록 크기와 일치하지 않습니다.
이전에 작동하는 코드가 있었지만 변경된 사항이 있습니다. 알아낼 수 없습니다.
코드를 실행하면 다음 오류가 발생합니다.
지정된 초기화 벡터 (IV) 이 알고리즘의 블록 크기와 일치하지 않는다. 어떤 도움을 이해할 수있을 것이다
string textToEncrypt = "TEST STRING"; int keySize = 256; string hashAlgorithm = "SHA1"; string passPhrase = "AH!PSB0%FGHR$"; string saltValue = "LRT%YUR#[email protected]"; string initVector = "HR$2pIjHR$2pIj"; byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); byte[] plainTextBytes = Encoding.UTF8.GetBytes(textToEncrypt); PasswordDeriveBytes password = new PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, 2); byte[] keyBytes = password.GetBytes(keySize/8); RijndaelManaged symmetricKey = new RijndaelManaged(); symmetricKey.Mode = CipherMode.CBC; ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes,initVectorBytes); MemoryStream memoryStream = new MemoryStream(); CryptoStream cryptoStream = new CryptoStream(memoryStream,encryptor,CryptoStreamMode.Write); cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); cryptoStream.FlushFinalBlock(); byte[] cipherTextBytes = memoryStream.ToArray(); memoryStream.Close(); cryptoStream.Close(); string cipherText = Convert.ToBase64String(cipherTextBytes);
:
여기 내 코드입니다.
오, 이런, 그게 다야! 도움을 많이 주셔서 감사합니다. –