C# 呼叫BouncyCastle生成PEM格式的私鑰和公鑰 , 加密解密 PKCS#1
引用第三方類庫 BouncyCastle
nuget: https://www.nuget.org/packages/BouncyCastle
網址: http://www.bouncycastle.org/csharp/index.html
1.生成 pem 私鑰
TextWriter textWriter = new StringWriter(); PemWriter pemWriter = new PemWriter(textWriter); pemWriter.WriteObject(keys.Private); pemWriter.Writer.Flush(); string privateKey = textWriter.ToString();
//公鑰
TextWriter textpubWriter = new StringWriter();
PemWriter pempubWriter = new PemWriter(textpubWriter);
pempubWriter.WriteObject(keys.Public);
pempubWriter.Writer.Flush();
string pubKey = textpubWriter.ToString();
生成結果
公鑰:
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCDzNqPhq2nk1aIsIK30X7UAHC5 jNqVKk12ZxsVEOjPFajV82VuJ7a31uLtU3NWRN4SIzhXmhAiptiDXq04AReV6veh 3xdI069xmsIx/EEJNHnL034is6gSVev8p7wJ+qevxdYUGaMVgAV6osYAeQhMTTld emiiriKVAoeezhs5fQIDAQAB -----END PUBLIC KEY-----
私鑰
-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCDzNqPhq2nk1aIsIK30X7UAHC5jNqVKk12ZxsVEOjPFajV82Vu J7a31uLtU3NWRN4SIzhXmhAiptiDXq04AReV6veh3xdI069xmsIx/EEJNHnL034i s6gSVev8p7wJ+qevxdYUGaMVgAV6osYAeQhMTTldemiiriKVAoeezhs5fQIDAQAB AoGAC5l5psx1Xg+WiKmLZ5gb1f0P7q4zbCtXILnxGG9VJFySPMb5QOX+RVTqwqfn uUqOuZpSuOSWa1mAKdepEQoixCIBTbG8THhbXi5/vdN4FMUXmHBe1Gage0HFE5Ep EMGpFuGZW9PmXG5m78gkTwc/cYJYWSA6I9AMWJ8rBGfti/UCQQC9ehPq0wFV8icL qcW3HlNsPzpqKPWFKp9UWz8kB6ayyTX9pci02Rp4Fig3i625+eMnJ+Kq0DRVGeJE 4auCugb7AkEAshLgdDxnvQVbPFJvxF8yAZe3Tu4L2vbEA55wqnEdHMUSnHERXO72 9Uk1t2n5v67xIksGewyZ0X6x/7wbsg035wJAR+0FjoiW4zdPFyBVS5QZeuftlssB mJF7dhxFNbopz4iOFEFQlUYsxBU1IxDE2+o+DmkXpFvw4bU3rYo0/yT67QJAQcpR nQA4P5C8DYRTgNS+7/Gyqvmt7Z8f+kpOS9pwrBFvd9caWCB9o1ACBZqkyBoFQus/ ILUeG1VYxCgmf1j83wJBAK1ETGDQM9LPOZAtB7Idv1Xo4sJtDn90yIyjhJjE6hhA pvGGRb/1aOB1DMrx3JweIUB7rKMpkGVcouFIO4/s9cU= -----END RSA PRIVATE KEY-----
2. 使用pem 證書解密或解密. 公鑰私鑰型別不一樣
使用公鑰加解密:
using (TextReader reader = new StringReader(pubkeyPemString}))
{
var enType=true; //加密true 解密 false;
var key = new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject() as AsymmetricKeyParameter;
var rsa = new RsaEngine();
rsa.Init(enType, key);
var data = Encoding.UTF8.GetBytes(tb_input.Text);
entData = rsa.ProcessBlock(data, 0, data.Length);
tb_output.Text = "加密: \r\n\r\n" + Encoding.UTF8.GetString(entData);
}
使用 私鑰加解密: 私鑰中帶有公鑰資訊.解析出來的是金鑰對AsymmetricCipherKeyPair
using (TextReader reader2 = new StringReader(tb_privitekey.Text)) { dynamic key = new Org.BouncyCastle.OpenSsl.PemReader(reader2).ReadObject(); var rsa2 = new RsaEngine(); if (key is AsymmetricKeyParameter) { key = (AsymmetricKeyParameter)key; } else if(key is AsymmetricCipherKeyPair) { key = ((AsymmetricCipherKeyPair)key).Private; } rsa2.Init(false, key); //加密true 解密 false //entData 待加密解密的 串 byte[] entData= Encoding.UTF8.GetBytes(tb_input.Text); entData = rsa2.ProcessBlock(entData, 0, entData.Length); tb_output.Text += "解密:\r\n \r\n" + Encoding.UTF8.GetString(entData); }
參考文章:
相關推薦
C# 呼叫BouncyCastle生成PEM格式的私鑰和公鑰 , 加密解密 PKCS#1
引用第三方類庫 BouncyCastle nuget: https://www.nuget.org/packages/BouncyCastle網址: http://www.bouncycastle.org/csharp/index.html1.生成 pem 私鑰TextW
使用openssl生成PEM格式私鑰和公鑰及ECDSA簽名
一、生成金鑰與讀取的過程 /* 生成公鑰 */ RSA* rsa = RSA_generate_key( 1024, RSA_F4, NULL, NULL); BIO *bp = BIO_new( BIO_s_file() ); BIO_
RSA私鑰和公鑰檔案格式 (pkcs#7, pkcs#8, pkcs#12, pem)
Format Name Description PKCS #7 Cryptographic Message Syntax Standard A PKCS #7 file can be used to store certificates, which is a Signed
支付寶私鑰和公鑰的生成方法
views orm 就是 你們 支付寶支付 title bsp href print 支付寶官網參考資料: 如何生成RSA密鑰https://cshall.alipay.com/enterprise/help_detail.htm?help_id=474010
使用OpenSSL來生成私鑰和公鑰
生成私鑰,設定e=65537 ,也可以不加引數,預設就是65537 (私鑰檔案編碼是PKCS#1格式) openssl genrsa -65537 -out rsa_private_key.pem 2048 Generating RSA private
openssl生成的私鑰和公鑰意義
通過openssl可以很容易生成一對私鑰和公鑰,注意私鑰和公鑰是成對出現的。 私鑰:指只有自己知道的一個字串 公鑰:提供出來給大家都知道的一個字串 關於私鑰和公鑰的操作分兩種:1.公鑰加密資料,私鑰解密資料 2.私鑰簽名資料,公鑰驗證資料 我們一個一個來分析: 1.公鑰加密
https私鑰和公鑰(轉)
html back style sign 網頁 加密 -1 詳解 運營 公鑰與私鑰,HTTPS詳解 原文網址:http://www.youdzone.com/signature.html1.公鑰與私鑰原理1)鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰2)鮑勃把公鑰送給他的
windows 下OPENSSL 生成秘鑰和公鑰的方法
十六進制 pk8 rsa私鑰 nbsp 十六 格式 top 生成 pen 1. 生成原始 RSA私鑰文件 private_key.pem openssl genrsa -out private_key.pem 1024 2. 將原始 RSA私鑰轉換為
RSA 私鑰和公鑰的一些理解
RSA 是非對稱加密演算法 對稱的加密演算法,加密和解密都是使用的一套金鑰,而非對稱使用的是兩套金鑰。 例如我要傳的是18,然後我加密的時候是3*6,然後能我解密的時候,可能是(3*3)*(6/3)=9*2=18 來得到這個18. 我加密的時候是一種金鑰, 解密的時候又是一種金鑰。 1:加密的金
公鑰,私鑰和公鑰加密、私鑰解密、公鑰數字簽名、私鑰驗證等概念理解 - 超簡單
公鑰加密(public key)和 私鑰解密(private key) 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。 我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不
非對稱加解密,私鑰和公鑰到底是誰來加密,誰來解密
第一種用法:公鑰加密,私鑰解密。---用於加解密 第二種用法:私鑰簽名,公鑰驗籤。---用於簽名 有點混亂,不要去硬記,總結一下: 你只要想: 既然是加密,那肯定是不希望別人知道我的訊息,所以只有我才能
SM2算法生成的私鑰以及公鑰位數過大(341位和65位)
eba srv tar 公鑰 ref dac b16 mic 以及 Q滓痹仙3韌L湍赫一http://huiyi.docin.com/voxpf395 A1o74gw糧僨40訟傅釁http://huiyi.docin.com/vlbew6304 Oq24刑l1譖ka濫h
證書,私鑰,公鑰,pfx,keystore,pem,der 都是什麼??
剛開始接觸證書,很容易就會被各種名詞整的迷迷糊糊,因為對這一塊一直不在熟悉,所以今天找機會好好看了一下關於證書的知識點, ,主要是理了一下思路。 通過搜尋引擎一搜索,我們會發現很多介紹文章,如果沒接觸過這一塊的話,一上來很多的名字就會把人繞暈了。什麼csr,crt,cer,keystor
證書,私鑰,公鑰,pfx,keystore,pem,der 都是什麼?
轉自:https://blog.csdn.net/qq_30698633/article/details/77895151 我們知道,現在的網站為了資料的安全,往往都會使用證書進行簽名或者加密資料。可以證書的各種字尾讓人無從下手,不知道該用什麼,以及怎麼使用。 什麼是CA? CA就相當於
RSA私鑰及公鑰生成
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H/57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJSg2tSgk7F29SpsF0I36oSLCIsz
Mac 下Nodejs 使用 https 的過程以及使用openssl生成私鑰、公鑰和證書
更多功能前往github下載檢視,歡迎star 生成公鑰、私鑰和證書 Mac 內建了openssl可以直接在終端使用 在終端輸入:(加粗部分為在終端輸入的程式碼) openssl genrsa -o
以太坊賬戶私鑰、公鑰、地址的生成
偽隨機 private there tar 生成 pubkey 流程 比特幣 私鑰 對比上一篇比特幣賬戶私鑰、公鑰、地址的生成,現在再總結對比一下以太坊中地址生成的不同之處。 私鑰、公鑰和地址是如何生成的? 以太坊地址生成的流程也是:私鑰 -> 公鑰 ->
蘋果證書和公鑰私鑰加密
調試 git 開發證書 真機 sign 密鑰 csdn ios開發證書 spa 今天看了點關於公私鑰加密的內容,趕快記下省的忘記了。 這裏有幾個概念:公鑰,私鑰,加密,認證,認證中心(CA),數字證書。 公鑰和私鑰是屬於非對稱性加密,公鑰和私鑰是完全不同的,但是相互對應的。
比特幣私鑰、公鑰、地址
rand ID stat hex 進制 ret 二進制 顯示 sta 私鑰 私鑰是 256 位的二進制數,以 64 位 hex 顯示,例如 9ba7174575a405a3cbbf67535c0b59019b474fd37ad6909fe6a97d3db39a14cd pu
生成tfrecords格式數據和使用dataset API使用tfrecords數據
fixed 三種 res write pan set writer cor 合成 TFRecords是TensorFlow中的設計的一種內置的文件格式,它是一種二進制文件,優點有如下幾種: 統一不同輸入文件的框架 它是更好的利用內存,更方便復制和移動(TFRecord壓縮