다른 출력을 반환하는 RSA 암호화
-
21-12-2019 - |
문제
은 RSA 암호화를 처음 사용하고 .NET의 System.Security.Cryptography
를 사용하여 정확히 작동하는 방식을 배우려고 노력했습니다.
public String Encryption(Byte[] Input, RSAParameters PublicKey)
{
RSAC = new RSACryptoServiceProvider();
RSAC.ImportParameters(PublicKey);
Byte[] Encrypt = RSAC.Encrypt(Input, false);
return Convert.ToBase64String(Encrypt);
}
.
위의 코드를 사용하면 응용 프로그램을 다시 시작할 때마다 동일한 intput에 대해 다른 암호화 된 문자열을 얻습니다.이것이 정상적인 행동인지 여부를 알고 싶습니다.
예를 들어 프로그램은 "hello"입력에 대해 아래 문자열을 반환합니다.
NopDAF5FRu....
.
응용 프로그램을 다시 시작하면 동일한 입력을위한 출력이 다음과 같습니다.
pPPu8x6....
.
그러나 RSA 암호화 클래스에 대한 새 객체를 만들 때 모든 객체는 동일한 출력을 반환합니다.
해결책
그것은 완전히 정상이고 괜찮습니다.암호화되는 데이터는 임의의 값으로 패딩 된 블록 내부에 놓입니다.그런 다음 공개 키로 암호화됩니다.
이 So Q & A 자세한 내용은
제휴하지 않습니다 StackOverflow