RSA加密解密与签名验证

关于RSACryption帮助类定义见RSACryption

一、加密与解密

            //定义明文和密文变量

            string plaintext = "天道酬勤,厚德载物!";

            string ciphertext = "";



            //产生密钥

            string prikey = "", pubkey = "";

            rsa.RSAKey(out prikey, out pubkey);



            //加密解密过程

            ciphertext = rsa.RSAEncrypt(pubkey, plaintext);

            plaintext = rsa.RSADecrypt(prikey, ciphertext);
View Code

 

二、签名与验证

            //获取明文Hash值

            byte[] plaintextHash = null;

            rsa.GetHash(plaintext, ref plaintextHash);

            //获取签名密文

            string SignatureCiphertext = null;

            rsa.SignatureFormatter(prikey, plaintextHash, ref SignatureCiphertext);

            //验证

            string verify = rsa.SignatureDeformatter(pubkey, plaintextHash, SignatureCiphertext) ? "OK!没问题" : "NO!内容被篡改了";
View Code

 

Tips:利用RSA的签名和验证功能还可简单实现软件注册码功能,签名即注册码,验证即验证。

相关链接

RSA分段加密【解决“不正确的长度”的异常】

你可能感兴趣的:(加密解密)