다음을 통해 공유


RSAPKCS1SignatureFormatter.CreateSignature(Byte[]) 메서드

정의

지정된 데이터의 RSA PKCS #1 서명을 생성합니다.

public:
 override cli::array <System::Byte> ^ CreateSignature(cli::array <System::Byte> ^ rgbHash);
public override byte[] CreateSignature (byte[] rgbHash);
override this.CreateSignature : byte[] -> byte[]
Public Overrides Function CreateSignature (rgbHash As Byte()) As Byte()

매개 변수

rgbHash
Byte[]

서명할 데이터입니다.

반환

Byte[]

rgbHash의 디지털 서명입니다.

예외

이때 키는 null입니다.

또는

해시 알고리즘이 null인 경우

rgbHash 매개 변수가 null인 경우

예제

다음 예제에서는 PKCS #1 버전 1.5 서명을 만드는 방법을 보여 줍니다.

using System;
using System.Security.Cryptography;

class RSASample
{

    static void Main()
    {
        try
        {
            //Create a new instance of RSA.
            using (RSA rsa = RSA.Create())
            {
                //The hash to sign.
                byte[] hash;
                using (SHA256 sha256 = SHA256.Create())
                {
                    byte[] data = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };
                    hash = sha256.ComputeHash(data);
                }

                //Create an RSASignatureFormatter object and pass it the 
                //RSA instance to transfer the key information.
                RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(rsa);

                //Set the hash algorithm to SHA256.
                RSAFormatter.SetHashAlgorithm("SHA256");

                //Create a signature for HashValue and return it.
                byte[] SignedHash = RSAFormatter.CreateSignature(hash);
            }
        }
        catch (CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.Security.Cryptography

Friend Class RSASample

    Shared Sub Main()
        Try
            'Create a new instance of RSA.
            Using rsa As RSA = RSA.Create()
                'The hash to sign.
                Dim hash() As Byte
                Using sha256 As SHA256 = SHA256.Create()
                    Dim data() As Byte = { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 }
                    hash = sha256.ComputeHash(data)
                End Using

                'Create an RSASignatureFormatter object and pass it the 
                'RSA to transfer the key information.
                Dim RSAFormatter As New RSAPKCS1SignatureFormatter(rsa)

                'Set the hash algorithm to SHA256.
                RSAFormatter.SetHashAlgorithm("SHA256")

                'Create a signature for HashValue and return it.
                Dim SignedHash() As Byte = RSAFormatter.CreateSignature(hash)
            End Using

        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Class

설명

이 메서드를 호출하기 전에 키와 해시 알고리즘을 지정해야 합니다.

적용 대상

추가 정보