keystore提取私鑰和證書
keytool -genkey -alias test -keyalg RSA -keystore c:/key.store
生成keyStore
RSA是一個既能用於資料加密也能用於數字簽名的演算法。
DSA(Digital Signature Algorithm,數字簽名演算法,用作數字簽名標準的一部分),它是另一種公開金鑰演算法,它不能用作加密,只用作數字簽名。DSA使用公開金鑰,為接受者驗證資料的完整性和資料傳送者的身份。
提取證書:
通過keytool命令我們可以很輕鬆的提取證書.
證書包括主體資訊,公鑰.
keytool -export -alias 別名 -keystore 檔名 -file 證書名稱
但是我們無法通過KEYTOOL工具來提取私鑰的..我們只能通過java的KeyStore類getEntry() 或者getKey()來提取私鑰.
讀取keyStore檔案:
char[] password = "password".toCharArray();
java.io.FileInputStream fis = new java.io.FileInputStream("c:/server/server_keystore");
// 從指定的輸入流中載入此 KeyStore
ks.load(fis, password);
//keystore 中的每一項都用“別名”字串標識。
//使用指定保護引數獲取指定別名的 keystore
Entry
。
方法1. KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) ks.getEntry("keystore別名", new KeyStore.PasswordProtection(password));
// 返回與給定別名相關聯的金鑰
方法2. PrivateKey key = (PrivateKey) ks.getKey("ser", password);
怎麼來驗證提取的私鑰是否正確呢?(因為公鑰私鑰必須成對出現,我們可以通過證書提取去公鑰,然後用公鑰加密,使用剛剛獲得的私鑰解密)
提取證書的方法:
keytool -export -alias 別名 -keystore 檔名 -file 證書名稱
//通過證書,獲取公鑰
CertificateFactory cf = CertificateFactory.getInstance("X.509");
FileInputStream in = new FileInputStream("C:\\server\\server.cer");
//生成一個證書物件並使用從輸入流 inStream
中讀取的資料對它進行初始化。
Certificate c = cf.generateCertificate(in);
PublicKey publicKey = c.getPublicKey();
//通過下面這段程式碼提取的私鑰是否正確
String before = "asdf";
byte[] plainText = before.getBytes("UTF-8");
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
// 用公鑰進行加密,返回一個位元組流
byte[] cipherText = cipher.doFinal(plainText);
cipher.init(Cipher.DECRYPT_MODE, myPrivateKey);
// 用私鑰進行解密,返回一個位元組流
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println(new String(newPlainText, "UTF-8"));
相關推薦
keystore提取私鑰和證書
keytool -genkey -alias test -keyalg RSA -keystore c:/key.store 生成keyStore RSA是一個既能用於資料加密也能用於數字簽名的演算法。 DSA(Digital Signature Algorithm,數字簽
openssl將私鑰和crt證書合成pfx證書
情況 ref 安裝程序 我們 strong get 成功 pro 進行 在IIS配置ssl的時候,安裝服務器證書,發現安裝後,刷新下證書就消失了,在編輯綁定的時候,可選證書中也沒有安裝的證書。 原因是我的證書文件的證書申請並不是在我的服務器上申請的,因此只安裝crt證書會出
(轉載)我理解的數字證書-1-公鑰,私鑰和數字證書
rsa加密算法 流程 employ alice 人的 無法 什麽是 作者 alt 原文地址:https://www.cnblogs.com/hthf/p/4986507.html 英文原文地址: http://www.youdzone.com/signature.h
KeyStore載入PublicKey/PrivateKey(公/私鑰)證書
開發過程中,對於簽名和驗籤的問題,相信大家沒少見過。很多時候,我們只是拿來就用,根本沒留意裡面的邏輯; 要麼就是專案現有的簽名和驗籤邏輯,要麼就是拿demo裡面的程式碼然後整合到專案中去,直接使用。 很少有自己去寫一套簽名和驗籤的程式碼邏輯,沒有完全理解透徹之前,總覺得簽名和驗籤神神祕祕
公鑰,私鑰和數字證書關係
英文原文地址: http://www.youdzone.com/signature.html 若下文有任何錯誤,請告知我,謝謝。[email protected] 主角介紹:Bob and Alice 提起RSA加密演算法,公鑰和私鑰,多數文章都要使用Bob和Alic
Mac 下Nodejs 使用 https 的過程以及使用openssl生成私鑰、公鑰和證書
更多功能前往github下載檢視,歡迎star 生成公鑰、私鑰和證書 Mac 內建了openssl可以直接在終端使用 在終端輸入:(加粗部分為在終端輸入的程式碼) openssl genrsa -o
Java程式設計: 從KeyStore中獲取私鑰與證書
用keytool可以生成JSK型別的keystore,其中可以存放很多個Key(私鑰和對應的證書)。import java.io.*; import java.security.*; import java.secur
https私鑰和公鑰(轉)
html back style sign 網頁 加密 -1 詳解 運營 公鑰與私鑰,HTTPS詳解 原文網址:http://www.youdzone.com/signature.html1.公鑰與私鑰原理1)鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰2)鮑勃把公鑰送給他的
公鑰與私鑰和加簽與驗簽
然而 指定 簽名 判斷 總結 使用 感覺 現在 得到 在公司查問題時遇到一個關於公鑰與私鑰和加簽與驗簽的問題,當時不太明白,後來弄明白了感覺挺有意思的,所以想分享一下。 為了說明問題,假設現在有a,b,c三家公司,彼此都有業務往來。 假設a,b公司都會向c公司發送報
支付寶私鑰和公鑰的生成方法
views orm 就是 你們 支付寶支付 title bsp href print 支付寶官網參考資料: 如何生成RSA密鑰https://cshall.alipay.com/enterprise/help_detail.htm?help_id=474010
使用keytool生成公鑰、私鑰、證書並且讀取出來,使用私鑰簽名jar並驗證(轉)
工具 crypto upload () 結構 清單文件 style too ref 參考鏈接:http://happyqing.iteye.com/blog/2139504 :https://blog.csdn.net/arjelarxfc/article/det
RSA 私鑰和公鑰的一些理解
RSA 是非對稱加密演算法 對稱的加密演算法,加密和解密都是使用的一套金鑰,而非對稱使用的是兩套金鑰。 例如我要傳的是18,然後我加密的時候是3*6,然後能我解密的時候,可能是(3*3)*(6/3)=9*2=18 來得到這個18. 我加密的時候是一種金鑰, 解密的時候又是一種金鑰。 1:加密的金
深入淺出 - 公鑰、私鑰和數字簽名最通俗的理解
一、公鑰加密 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。 我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以
RSA公鑰,私鑰和數字簽名的舉例理解
一、公鑰加密 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。 我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用 數
【智慧合約學習筆記】關於非對稱加密的公鑰、私鑰和加解密~
學習了非對稱加密,其中對於公鑰和私鑰在加解密中的角色,還是有些不理解,於是找了點資料,加深下理解。 關於非對稱加解密,私鑰和公鑰到底是誰來加密,誰來解密? 第一種用法:公鑰加密,私鑰解密。---用於加解密 第二種用法:私鑰簽名,公鑰驗籤。---用於簽名 有點混亂
公鑰、私鑰和數字簽名(轉載)
一、說明 原文地址:http://blog.csdn.net/tabactivity/article/details/49685319 公鑰(Public Key)與私匙(Private Key)是通過一種演算法得到的一個密匙對(即一個公鑰和一個私鑰),是非對稱加密,公鑰是金鑰對中公開的部分,私鑰則是非公
公鑰,私鑰和公鑰加密、私鑰解密、公鑰數字簽名、私鑰驗證等概念理解 - 超簡單
公鑰加密(public key)和 私鑰解密(private key) 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。 我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不
公鑰,私鑰和數字簽名這樣最好理解,以及加解密例項
原文:http://blog.csdn.net/21aspnet/article/details/7249401 一、公鑰加密 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。 我有一個檔
公鑰,私鑰和數字簽名這樣最好理解
一、公鑰加密 假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用數字2,就是
C# 呼叫BouncyCastle生成PEM格式的私鑰和公鑰 , 加密解密 PKCS#1
引用第三方類庫 BouncyCastle nuget: https://www.nuget.org/packages/BouncyCastle網址: http://www.bouncycastle.org/csharp/index.html1.生成 pem 私鑰TextW