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


   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();
                }

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

  • 2017년 08월 12일에 작성됨

조회수 60


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close