-
大小: 50KB文件類型: .zip金幣: 2下載: 4 次發(fā)布日期: 2021-06-03
- 語(yǔ)言: C#
- 標(biāo)簽: SHA1withRsa??
資源簡(jiǎn)介
支付寶驗(yàn)名驗(yàn)證函數(shù)可參考此代碼。
SHA1withRsa的各種操作:加密解密,加簽驗(yàn)簽。
C#源碼可編譯。簽名調(diào)用方法:SHA1WithRSA.sign(str, key, "UTF-8");

代碼片段和文件信息
using?System;
namespace?RSA
{
????public?class?Program
????{
????????static?void?Main(string[]?arg)
????????{
????????????/**RSA加密測(cè)試RSA中的密鑰對(duì)通過(guò)SSL工具生成,生成命令如下:
?????????????*?1?生成RSA私鑰:
?????????????*?openssl?genrsa?-out?rsa_private_key.pem?1024
?????????????*2?生成RSA公鑰
?????????????*?openssl?rsa?-in?rsa_private_key.pem?-pubout?-out?rsa_public_key.pem
?????????????*
?????????????*?3?將RSA私鑰轉(zhuǎn)換成PKCS8格式
?????????????*?openssl?pkcs8?-topk8?-inform?PEM?-in?rsa_private_key.pem?-outform?PEM?-nocrypt?-out?rsa_pub_pk8.pem
?????????????*
?????????????*?直接打開rsa_private_key.pem和rsa_pub_pk8.pem文件就可以獲取密鑰對(duì)內(nèi)容,獲取密鑰對(duì)內(nèi)容組成字符串時(shí),注意將換行符刪除
?????????????*?*/
????????????string?publickey?=?“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzOqfNunFxFtCZPlq7fO/jWwjqmTvAooVBB4y87BizSZ9dl/F7FpAxYc6MmX2TqivCvvORXgdlYdFWAhzXOnIUv9OGG///WPLe9TMs9kIwAZ/APUXauvC01oFLnYkzwPlAh0tQ1Au9arTE/OG1V1dKgf8BXHLPhKL4BmGBEUZBtQIDAQAB“;
????????????string?privatekey?=?“MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAPM6p826cXEW0Jk+Wrt87+NbCOqZO8CihUEHjLzsGLNJn12X8XsWkDFhzoyZfZOqK8K+85FeB2Vh0VYCHNc6chS/04Yb//9Y8t71Myz2QjABn8A9Rdq68LTWgUudiTPA+UCHS1DUC71qtMT84bVXV0qB/wFccs+EovgGYYERRkG1AgMBAAECgYEA2PmnPdgnYKnolfvQ9tXiLaBFGPpvGk4grz0r6FB5TF7N4rErwxECunq0xioaowK4HPc40qHd2SvkkWQ7FCjYIDsnMk1oOhxNKn0J3FG0n5Cg1/dFai4eoXHs/nKn3SVZ8YZC1T2cMtN2srectLqNqhB8aQEe8xmykyUlUpg/qmECQQD9vkwjUotG5oUUrOj6etcB4WcdyyH0FtThKgyoJUDwgBv6lGGzWyFJEREvp47IgV+FgC7zeP2mL4MhgnD3tNCZAkEA9WRrjOLBNc379XZpoDsH7rZjobVvhnTrEuRDx/whqZ+vk64EPrEW81XYh647bAbJlFn2jPhY+IUHkrxFEFT/fQJBAMoLNOULXQtfkqgb5odMONeue0Ul8itB4tBHgzyALW1TFPQ6InGGJsLfbCfd67uMCFts7fXAaXhibK/KBdm3iEECQQChwVAjzlUN4nnzk9qMhFz2PcPvFGovd2J9UXpcmRaXeWuDLXIe4Rz/ydaxmWgSDWdTIvoicpIzP31+fBwKZ/0BAkEAy0bh4weKmYF29//rK0sxmY8RtqkQeFrwWbqx1daa1w0DfWlNSvy47zyW1G5/AdZU6JSpXxlxdlM/HSDw+v7kcA==“;
????????????//加密字符串
????????????string?data?=?“yibao“;
????????????Console.WriteLine(“加密前字符串內(nèi)容:“?+?data);
????????????//加密
????????????string?encrypteddata?=?SHA1WithRSA.encryptData(data?publickey?“UTF-8“);
????????????Console.WriteLine(“加密后的字符串為:“?+?encrypteddata);
????????????Console.WriteLine(“解密后的字符串內(nèi)容:“?+?SHA1WithRSA.decryptData(encrypteddata?privatekey?“UTF-8“));
????????????Console.WriteLine(“***********“);
????????????//解密
????????????string?endata?=?“LpnnvnfA72VnyjboX/OsCPO6FOFXeEnnsKkI7aAEQyVAPfCTfQ43ZYVZVqnADDPMW7VhBXJWyQMAGw2Fh9sS/XLHmO5XW94Yehci6JrJMynePgtIiDysjNA+UlgSTC/MlResNrBm/4MMSPvq0qLwScgpZDynhLsVZk+EQ6G8wgA=“;
????????????string?datamw?=?SHA1WithRSA.decryptData(endata?privatekey?“UTF-8“);
????????????Console.WriteLine(“靜態(tài)加密后的字符串為:“?+?endata);
????????????Console.WriteLine(“解密后的字符串內(nèi)容:“?+?datamw);
????????????//簽名
????????????string?signdata?=?“YB010000001441234567286038508081299“;
????????????Console.WriteLine(“簽名前的字符串內(nèi)容:“?+?signdata);
????????????string?sign?=?SHA1WithRSA.sign(signdata?privatekey?“UTF-8“);
????????????Console.WriteLine(“簽名后的字符串:“?+?sign);
????????????//驗(yàn)簽
????????????string?ysigndata?=?“YB0100000014412
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-08-31?14:42??SHA1withRsa\
?????目錄???????????0??2017-08-31?14:42??SHA1withRsa\.vs\
?????目錄???????????0??2017-08-31?14:42??SHA1withRsa\.vs\rsa\
?????目錄???????????0??2017-08-31?14:42??SHA1withRsa\.vs\rsa\v15\
?????文件???????14336??2016-10-14?16:13??SHA1withRsa\.vs\rsa\v15\.suo
?????目錄???????????0??2017-08-31?14:50??SHA1withRsa\RSA\
?????文件????????3671??2017-08-31?14:50??SHA1withRsa\RSA\Program.cs
?????目錄???????????0??2017-08-31?14:41??SHA1withRsa\RSA\Properties\
?????文件????????1356??2016-10-13?12:00??SHA1withRsa\RSA\Properties\AssemblyInfo.cs
?????文件????????2469??2017-08-31?14:50??SHA1withRsa\RSA\RSA.csproj
?????文件???????20068??2017-08-31?14:50??SHA1withRsa\RSA\SHA1WithRSA.cs
?????目錄???????????0??2017-08-31?14:49??SHA1withRsa\RSA\bin\
?????目錄???????????0??2017-08-31?14:41??SHA1withRsa\RSA\bin\Debug\
?????文件???????13312??2017-08-31?14:50??SHA1withRsa\RSA\bin\Debug\RSA.exe
?????文件???????26112??2017-08-31?14:50??SHA1withRsa\RSA\bin\Debug\RSA.pdb
?????文件???????11600??2016-10-14?16:13??SHA1withRsa\RSA\bin\Debug\RSA.vshost.exe
?????文件?????????490??2012-06-06?02:06??SHA1withRsa\RSA\bin\Debug\RSA.vshost.exe.manifest
?????目錄???????????0??2017-08-31?14:51??SHA1withRsa\RSA\bin\Release\
?????目錄???????????0??2017-08-31?14:41??SHA1withRsa\RSA\obj\
?????目錄???????????0??2017-08-31?14:41??SHA1withRsa\RSA\obj\x86\
?????目錄???????????0??2017-08-31?14:50??SHA1withRsa\RSA\obj\x86\Debug\
?????文件??????????42??2017-08-31?14:49??SHA1withRsa\RSA\obj\x86\Debug\CoreCompileInputs.cache
?????文件????????6636??2017-08-31?14:49??SHA1withRsa\RSA\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????1071??2017-08-31?14:50??SHA1withRsa\RSA\obj\x86\Debug\RSA.csproj.FileListAbsolute.txt
?????文件????????7052??2017-08-31?14:50??SHA1withRsa\RSA\obj\x86\Debug\RSA.csprojResolveAssemblyReference.cache
?????文件???????13312??2017-08-31?14:50??SHA1withRsa\RSA\obj\x86\Debug\RSA.exe
?????文件???????26112??2017-08-31?14:50??SHA1withRsa\RSA\obj\x86\Debug\RSA.pdb
?????目錄???????????0??2017-08-31?14:51??SHA1withRsa\RSA\obj\x86\Debug\TempPE\
?????文件?????????851??2016-10-14?16:13??SHA1withRsa\rsa.sln
?????文件???????14336??2016-10-14?16:13??SHA1withRsa\rsa.suo
評(píng)論
共有 條評(píng)論