문제

은 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 자세한 내용은

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top