0

Visual Basic.net에서 개체를 serialize하고이 개체를 파일에 저장합니다. 이 과정에서 암호로 개체를 암호화하기 위해 CryptoStream을 사용하고 있습니다. 내 질문은 다음과 같습니다. 암호가 맞는지 아닌지를 확인하는 가장 좋은 방법은 무엇입니까?직렬화 된 개체 암호

오류 번호를 사용하여 잘못된 암호가 사용 된 경우 반환되는 번호인지 또는 올바른 암호가 사용되었는지 확인하는 데 사용할 수있는 특정 기능이 있는지 확인해야합니까?

답변

0

암호에는 "올바른"또는 "잘못된"키의 개념이 없습니다. 키에 따라 일부 데이터가 다른 데이터로 변환됩니다. 모든 변환은 암호의 관점에서 다른 것과 마찬가지로 "올바른"것입니다.

데이터를 구문 분석하고 데이터가 유효하지 않을 때 발생하는 오류를 잡으려고 할 수 있습니다. 이는 매우 일반적인 방법이지만이 경우 구문 분석 코드를 매우 견고하게 만들어야합니다. 또한 손상과 사용자 인터페이스 문제 일 수있는 잘못된 암호를 구별하는 것도 불가능합니다.

또 다른 접근법은 일종의 메시지 인증을 사용하는 것입니다. 상당히 간단한 선택은 당신이 그것에 접근 할 수 있다면 GCM 일 것입니다. 수동으로 HMAC을 암호문에 적용하려면 더 많은 계획이 필요하지만 가능해야합니다. 암호와 MAC에 대해 다른 키를 사용해야하므로 조금 더 어렵습니다.