편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.06.21

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

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