AES 암호화 복호화 코드 분석하다가 궁금한게 있어서 질문드립니다.

조회수 1187회
   AES.Key = key.GetBytes(AES.KeySize / 8);
   AES.IV = key.GetBytes(AES.BlockSize / 8);

여기서 바이트로 변환시켜주는 이유가 뭔가요??

 Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(passwordBytes, salt, 1000);

Rfc2898DeriveBytes함수가 KEY값이랑 IV값을 솔트값을 이용해서 랜덤값으로 변환 시켜주는 함수가 맞나요??

 AES.Mode = CipherMode.CBC

CBC모드가 비밀키 암호화의 모드중 하나라고 알고있는데 맞나요?

    using (var cryptostream = new CryptoStream(memorystram, AES.CreateDecryptor(), CryptoStreamMode.Write))
                {
                    cryptostream.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
                    cryptostream.Close();
                }

메모리 스트림을 사용하여서 크립토 스트림을 만드는데 복호화 한다음 암호화가 풀린 문자로 기존 암호화된 문자열에 덮어 씌우는게 위 코드의 역할이 맞나요??

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)