btc生成私鑰工具
㈠ 如何利用keytool工具生成數字證書
方法/步驟
查看JDK1.6是否安裝,出現如下界面說明JDK已經安裝
執行「keytool -genkey -alias test -keyalg RSA -keysize 1024 -keystore test.jks -validity 365」,彈出如下界面
設置JKS的密碼為「123456」後,出現如下界面:
輸入「名字」、「單位名稱」、「組織名稱」、「所在的城市」、「省份」以及「國家」,系統會提示主題名稱是否正確,並設置JKS的主密碼
利用"keytool -list -v -keystore test.jks"查看JKS中生成的證書的詳細信息
利用「keytool -alias test -exportcert -keystore test.jks -file test.cer」,導出證書,並可以雙擊打開證書查看證書信息
㈡ windows怎麼生成公鑰私鑰
公鑰通常用於加密會話密鑰、驗證數字簽名,或加密可以用相應的私鑰解密的數據。 公鑰是通過一種演算法得到的一個密鑰對(即一個公鑰)其中的一個向外界公開,稱為公鑰。通過這種演算法得到的密鑰對能保證在世界范圍內是唯一的。 使用這個密鑰對的時候,如果用其中一個密鑰加密一段數據,必須用另一個密鑰解密。比如用公鑰加密數據就必須用私鑰解密,否則解密將不會成功。公開鑰匙演算法大多基於計算復雜度上的難題,通常來自於數論。例如,RSA源於整數因子分解問題;DSA源於離散對數問題。近年發展快速的橢圓曲線密碼學則基於和橢圓曲線相關的數學難題,與離散對數相當。由於這些底層的問題多涉及模數乘法或指數運算,相對於分組密碼需要更多計算資源。因此,公開鑰匙系統通常是復合式的,內含一個高效率的對稱鑰匙演算法,用以加密信息,再以公開鑰匙加密對稱鑰匙系統所使用的鑰匙,以增進效率。其缺點是對大容量的信息加密速度慢,優點是可以作為身份認證,而且密鑰發送方式比較簡單安全。常見的公開密鑰加密演算法有RSA,DSA,ECA等。
㈢ 如何用已有的證書文件和私鑰文件生成keystore-CSDN論壇
(1)Openssl公私鑰
使用Openssl公鑰私鑰用於外部商戶系統xxx系統間報文安全性驗證使用者需要公私鑰直接報文進行處理則參考第四部計算摘要及簽名值
1. 安裝openssl步驟直接點擊exe文件現需要安裝vs2008插件直接忽略
2. 安裝程找OpenSSL相應安裝目錄進入bin目錄找openssl.exe執行文件點擊運行別按順序輸入命令:
a. genrsa –out private-rsa.key 1024
說明:該命令沒加密私鑰
genrsa 私鑰文件私鑰存儲private-rsa.key度1024out面指定輸文件名
private-rsa.key 私鑰文件該文件必須經處理私鑰
b. req –new –x509 –key private-rsa.key –days 750 –outpublic-rsa.cer
說明:根據private-rsa.key證書public-rsa.cer
-new 表示新請求
-509 表示輸證書結構
750表示證書效數
-out public-rsa.cer -out面表示公鑰證書用於驗證數字簽名公鑰證書或者公鑰需要提前發送給需要驗證本單位或部門數據接收
c. pkcs12 –export –name test-alias –in public-rsa.cer–inkey private-rsa.key –out 99bill-rsa.pfx
說明:PKCS12 格式Keystore
密碼前輸入要緻密碼用Keystore公私鑰程用
Public-rsa.cer, private-rsa.key前
附1:
述代碼99bill-rsa.pfx獲取私鑰Java版本代碼private-rsa.key私鑰直接使用必須進行定處理
代碼幾注意點:
文件流初始化路徑需要根據自實際路徑填寫
密碼第二節c步驟密碼本實例輸入suning
KeyStorekeyStore = KeyStore.getInstance("PKCS12");
= newFileInputStream("D:/OpenSSL/bin/99bill-rsa.pfx");
char[]nPassword = "suning".toCharArray();
StringkeyAlias = null;
keyStore.load(fileInputStream,nPassword);
fileInputStream.close();
System.out.println("keystoretype=" + keyStore.getType());
Enumerationenumeration = keyStore.aliases();
if(enumeration.hasMoreElements())
{
keyAlias = (String) enumeration.nextElement();
System.out.println("alias=[" + keyAlias +"]");
}
System.out.println("iskey entry=" + keyStore.isKeyEntry(keyAlias));
PrivateKeyprikey = (PrivateKey) keyStore.getKey(keyAlias, nPassword);
//私鑰轉字元串
StringprivateStr = Base64.encodeBase64String(prikey.getEncoded()).trim();
//公鑰字元串通cer證書
Certificatecert = keyStore.getCertificate(keyAlias);
PublicKeypubkey = cert.getPublicKey();
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
注意:
1. 所用類說明:
Base64:
import org.apache.commons.net.util.Base64;
Certificate:
import java.security.cert.Certificate;
2. openssl公私鑰程用戶輸入密碼本例密碼suning
1. 摘要及
摘要程(digest全部實現述3程):
1. 根據key傳map數據排序;
2. a1=b1&a2=b2&a3=b3形式字元串排除某些字元串Key值;
3. 調用digest進行md5編碼;
三步均通Digest.digest()實現:
String digest = Digest.digest(Map map, String... keys);
傳遞http報文體body內容a1=b1&a2=b2&a3=b3形式字元串提取需要加簽字元串並轉map形式execludeKes要排除欄位字元串數組
計算摘要步關鍵選取欄位要求發送接收必須致即發送哪些欄位計算摘要同接收必須相同欄位計算摘要否則報6601錯誤
說明:a. Map存儲計算摘要欄位
b. keys表示排除欄位能用於計算摘要欄位signature,signAlgorithm
2. 公鑰證書及字元串轉換
轉換目:便於存儲(商戶直接提供公鑰證書於向驗簽系統提供公鑰字元串商戶需要用述代碼公鑰轉字元串)
1. 公鑰/私鑰字元串轉公鑰/私鑰主要字元串轉公鑰PublicKey
X509EncodedKeySpec pubKeySpec = newX509EncodedKeySpec(Base64.decodeBase64(strPubKey));
KeyFactorykeyFactory = KeyFactory.getInstance(RSA);
PublicKeypubKey = keyFactory.generatePublic(pubKeySpec);
2. 公鑰或私鑰轉Base64字元串:
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
3. 公私鑰驗證
驗證目:公私鑰需要驗證否匹配(前許商戶公私鑰混亂確定公私鑰否匹配添加驗簽系統)代碼由用戶自用junit驗證運行驗證公私鑰否確resulttrue則說明公私鑰確;否則公私鑰問題能使用
String prik1 ="";
String pubb ="";
String data ="wkk";
String digest =Digest.digest(data);
PrivateKey privateKey =RSAUtil.getPrivateKey(prik1);
String sign =RSAUtil.sign(digest, privateKey);
boolean result =RSAUtil.vertiy(digest, sign,
RSAUtil.getPublicKey(pubb));
System.out.println(result);
㈣ 怎樣查看比特幣錢包私鑰
比特幣錢包私鑰在線無法查看,比特幣存在平台要下載core 或者classic才是真正的錢包,然後就可以查看了。
【比特幣錢包私鑰的說明】:
1、錢包加密是指對儲存有私鑰的錢包進行自動加密存儲。 比特幣官方客戶端從0.4.0 版本開始支持錢包加密。加密的錢包在每次付款的時候,都會提示您輸入密碼。如果密碼錯誤,客戶端會拒絕付款。
2、如果用最早備份的錢包(wallet.dat)替換回來,還是一樣可以正常交易。考慮到比特幣的原理應該也可得出,只要有私鑰(錢包)存在,就可以證明你是這個錢包的合法擁有者,不管對這個錢包(核心就是某個地址對應的私鑰)是進行了加密還是刪除,都不能否定它。
3、備份比特幣錢包時,還需注意由於比特幣支付找零機制的存在(比如把一個完整的100 btc中的50 btc發送給某個地址,系統會發送其中的50 btc到對方的地址,並退回50 btc到你客戶端的一個新地址上,這個地址不會直接顯示在你的地址列表中)。
4、每發送了100次比特幣給其它地址或者使用了100個不同的地址接收比特幣後,請重新備份錢包,否則後面交易退回的和接收到的比特幣會永久丟失。 除了給錢包加密外,用戶還可以自行生成離線的紙錢包和腦錢包。
㈤ 比特幣錢包私鑰是什麼
幣姐為了讓新人更容易理解,會使用一些比喻來講,雖然不太嚴謹,但是會更好理解。
私鑰就好像你的銀行卡密碼
比特幣錢包地址就好像你的銀行卡
只要有了銀行卡和密碼,誰都能從ATM上取錢。
而比特幣錢包地址是公開的,相當於別人都有你的銀行卡,所以這個時候你的銀行卡密碼(私鑰)就變得十分重要了!
一旦泄露你的密鑰,別人就可以把你的比特幣轉走。
網路搜索:「幣姐教你比特幣」或者「幣姐」找到我,更多精品內容分享哦~!
㈥ bitcoin私鑰是如何產生的
比特幣地址和私鑰是怎樣生成的?比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。生成的公鑰是33位元組的大數,私鑰是32位元組的大數,錢包文件wallet.dat中直接保存了公鑰和私鑰。我們在接收和發送比特幣時用到的比特幣地址是公鑰經過演算法處理後得到的,具體過程是公鑰先經過SHA-256演算法處理得到32位元組的哈希結果,再經過RIPEMED演算法處理後得到20位元組的摘要結果,再經過字元轉換過程得到我們看到的地址。這個字元轉換過程與私鑰的字元轉換過程完成相同,步驟是先把輸入的內容(對於公鑰就是20位元組的摘要結果,對於私鑰就是32位元組的大數)增加版本號,經過連續兩次SHA-256演算法,取後一次哈希結果的前4位元組作為校驗碼附在輸入內容的後面,然後再經過Base58編碼,得到字元串。
㈦ 私鑰公鑰如何生成
常用命令如下:--生成RSA私鑰(傳統格式的)openssl genrsa -out rsa_private_key.pem 1024--將傳統格式的私鑰轉換成PKCS#8格式的openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt--生成RSA公鑰openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
㈧ 比特幣能不能往一個離線生成的錢包存幣
你好,你的問題中有幾個關鍵點需要特別注意,我分別闡述如下:
你的描述中的"下載一個比特幣錢包軟體":這一步就值得小心謹慎,首先你的目的是離線製作比特幣紙錢包,那麼你要下載的其實是[比特幣離線紙錢包製作工具],而且這些工具良莠不齊,甚至有的非常有風險,那麼要選擇怎樣的[紙錢包製作工具]呢?一定是歷經多年大家共同認可,且開源的(就是源代碼都是完全開放的)的 [安全的比特幣離線紙錢包]製作工具才行,歷經多年,則經歷了時間的考驗,關於這點可以網路搜索對比了解,建議搜索[安全的比特幣離線紙錢包],多了解對比,要捨得花時間。
離線製作比特幣離線紙錢包,要「拔掉網線」這是對的,這時的確你製作紙錢包的電腦 就與整個互聯網完全隔絕的,這正是離線 的意義所在,這時你不用擔心,因為比特幣的錢包地址與私鑰只是一個憑證,比特幣並不是真正的要放進這個錢包里(這和現實中的錢包是完全不同的,可網路了解下),比特幣屬於哪個錢包地址,只是在比特幣區塊鏈網路上的的公共幾本的記載而已,因此,你生成的比特幣離線紙錢包是可以放心使用的,關鍵點在於你真正把比特幣離線紙錢包的私鑰地址抄寫到了紙上,而且保證沒有抄錯,把公鑰保存了下來,以便接收別人的比特幣轉賬,那麼這時,你生成的比特幣離線 紙錢包是完全會得到比特幣網路的承認的。
你問題描述中提到「我用紙把公鑰私鑰記了下來,然後把電腦砸個稀巴爛,然後用用火燒掉主機屏幕」——這其實完全不用,只要你離線製作比特幣離線紙錢包的過程中,拔掉了網線,也沒有人可以偷看到你的屏幕,那麼只要選擇的是安全比特幣離線紙錢包工具,得到的錢包就是安全的,當然最重要的是,你要把抄寫有比特幣離線紙錢包的私鑰的紙條最好存放到防火防水的保險櫃中。至於你用以生成比特幣離線紙錢包的電腦 ,不用砸壞它,最多把硬碟銷毀就可以了,前面搜索的安全比特幣離線紙錢包教程中就有詳細的說明後續處理要怎麼做。
最後你提到的向自己離線生成的比特幣紙錢包中轉幣的操作,這與向其它任何一個比特幣地址轉賬沒有任何不同,同步過程都是在整個比特幣區塊鏈網路中進行的,是需要等待,但是這是整個網路的確認過程。
希望我的回答能夠幫助你,建議先充分 學習了解後再操作。
㈨ 如何用已有的證書文件和私鑰文件生成keystore
首先不能使用java的類庫.除非你使用了JNI但是與其這樣,不如直接使用JAVA第二訪問https可以使用OpenSSL,keystore文件中的證書只是個密鑰.提取出來後完全可以用一般的SSL方式進行post或者get連接代碼互聯網上有的是
㈩ 如何導出keystore中的私鑰
使用java程序語言導出私鑰的方式,下載kestore-export.工具:
Java Runtime的目錄,指包含Java.exe和keytool.exe的目錄,如:
c:\progra~1\Java\jre1.5.0_06\bin
例如:
Cmd代碼
JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin