以太坊公私密鑰生成
Ⅰ 知道以太坊(ETH)的私鑰,如何導出他的地址
給定隨機生成的私鑰,其有效范圍為1到secp256k1曲線所定義的最大值,,可以通過取公鑰的keccack256哈希函數的較低(最右)160位來計算以太坊地址,
Ⅱ PKI中用戶如何自己產生密鑰對
PKI基礎(二).PKI基礎--3.公開密鑰數字簽名演算法(簽名)3.公開密鑰數字簽名演算法(簽名) DSA(Digital Signature Algorithm,數字簽名演算法,用作數字簽名標準的一部分),它是另一種公開密鑰演算法,它不能用作加密,只用作數字簽名。DSA使用公開密鑰,為接受者驗證數據的完整性和數據發送者的身份。它也可用於由第三方去確定簽名和所簽數據的真實性。DSA演算法的安全性基於解離散對數的困難性,這類簽字標准具有較大的兼容性和適用性,成為網路安全體系的基本構件之一。 DSA簽名演算法中用到了以下參數: p是L位長的素數,其中L從512到1024且是64的倍數。 q是160位長且與p-1互素的因子。 ,其中h是小於p-1並且滿足 大於1的任意數。 x是小於q的數。 另外,演算法使用一個單向散列函數H(m)。標准指定了安全散列演算法(SHA)。三個參數p,q和g是公開的,且可以被網路中所有的用戶公有。私人密鑰是x,公開密鑰是y。 對消息m簽名時: (1) 發送者產生一個小於q的隨機數k。 (2) 發送者產生: r和s就是發送者的簽名,發送者將它們發送給接受者。 (3) 接受者通過計算來驗證簽名: 如果v=r,則簽名有效。 DSA簽名: 公開密鑰: p 512位到1024位的素數 q 160位長,並與p-1互素的因子 ,其中h是小於p-1並且滿足 大於1的任意數。 私人密鑰: x小於q 簽名: k選取小於q的隨機數驗證: 如果v=r,則簽名被驗證。
Ⅲ 如何生成密鑰文件Snk
VS2005公鑰私鑰SN.EXE使用VS2005strongname的原理:先利用SN.exe這個工具生成一個比如SampleKey.snk的文件,這個文件的英文原文叫stringnamekeyfile,然後用加密的演算法根據SampleKey.snk生成一個SampleKeyPublic.snk.最後在根據SampleKeyPublic.snk提取一個publickeytoken,publickeytoken是一個16位的數字和字母混合的數(我不敢確定是不是十六進制數):大致流程如下:SampleKey.snk--根據一定的演算法-->SampleKeyPublic.snk---->publickeytoken所以我們只要SampleKey.snk和publickeytoken就可以了,SampleKeyPublic.snk就沒什麼用了.因為SampleKeyPublic.snk的貢獻做完了,所以我們不要為"為什麼在vs2003不用吊SampleKeyPublic.snk"而不爽.實際操作如下:1.打開SDKCommandPrompt或者VS2005中的VisualStudio2005CommandPrompt.而不是windows的cmd2.輸入sn-kSampleKey.snk,得到的文件在命令提示符的當前文件夾下(微軟叫文件夾很少叫目錄,最正點是folder)3.輸入sn-pSampleKey.snkSampleKeyPublic.snk4.輸入sn-tSampleKeyPublic.snk得到publickeytoken打開VS2005,找到項目,然後右擊"項目名"找到"屬性","屬性"裡面有個"Signing"的選項卡,然後鉤上"Signtheassembly",再Chooseastrongnamekeyfile.做完了操作,然後記得保存,編譯這樣你的DLL才能拖到GAC,GAC就是"全局程序集緩存",這就是為什麼你的你的項目的bin文件夾下沒有System.Data,你都能引用的原因,因為程序會自動去找GAC,GAC的位置在win2003中是"c:\windows\assembly".如果你的assembly在GAC中,那麼你的東西也是蠻吊的。SQlServer2005Samplebug是指在「C:\ProgramFiles\MicrosoftSQLSever\90\Samples\IntegrationService\ProgrammingSamples\ControlFlow\SqlConnectionManagerSample\SqlConnMgrCS」的Sample有問題請參照如下修改:1.SqlConnMgrCS.cs文件中的13行應改成:SqlConnMgrCSUI.SqlConnMgrUICS,SqlConnMgrUICS2.在SqlConnMgrCSUI項目中的SqlConnMgrUIFromCS.cs中的按鈕在SQLServer的SSISDesigner中根本點不動所以我們必須到VS2005中幫它觸發事件,然後Copy它的代碼到相應的事件處理程序中。
Ⅳ openssl 怎樣生成公鑰和密鑰 x509格式
在ubuntu上要使用openssl的話需要先進行安裝,命令如下:
sudo apt-get install openssl
安裝完成就可以使用openssl了。
首先需要進入openssl的交互界面,在命令行了輸入openssl即可;
1)生成RSA私鑰:
genrsa -out rsa_private_key.pem 1024
該命令會生成1024位的私鑰,生成成功的界面如下:
此時我們就可以在當前路徑下看到rsa_private_key.pem文件了。
2)把RSA私鑰轉換成PKCS8格式
輸入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt,並回車
得到生成功的結果,這個結果就是PKCS8格式的私鑰,如下圖:
3) 生成RSA公鑰
輸入命令rsa
-in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車,
得到生成成功的結果,如下圖:
此時,我們可以看到一個文件名為rsa_public_key.pem的文件,打開它,可以看到-----BEGIN
PUBLIC KEY-----開頭,
-----END PUBLIC KEY-----結尾的沒有換行的字元串,這個就是公鑰。
Ⅳ rsa的公鑰是根據密鑰生成的嗎
是的有對應關系的
一個公鑰對應一個私鑰。
密鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。
如果用其中一個密鑰加密數據,則只有對應的那個密鑰才可以解密。
如果用其中一個密鑰可以進行解密數據,則該數據必然是對應的那個密鑰進行的加密。
Ⅵ 如何生成SSH key
git是分布式的代碼管理工具,遠程的代碼管理是基於ssh的,所以要使用遠程的git則需要ssh的配置。
github的ssh配置如下:
1
、設置git的user
name和email:
$
git
config
--global
user.name
"xuhaiyan"
$
git
config
--global
user.email
"[email protected]"
2、生成ssh密鑰過程:
1)查看是否已經有了ssh密鑰:cd
~/.ssh
如果沒有密鑰則不會有此文件夾,有則備份刪除
2)生存密鑰:
$
ssh-keygen
-t
rsa
-c
「[email protected]」
按3個回車,密碼為空。
your
identification
has
been
saved
in
/home/tekkub/.ssh/id_rsa.
your
public
key
has
been
saved
in
/home/tekkub/.ssh/id_rsa.pub.
the
key
fingerprint
is:
最後得到了兩個文件:id_rsa和id_rsa.pub
3)添加密鑰到ssh:ssh-add
文件名
需要之前輸入密碼。
4)在github上添加ssh密鑰,這要添加的是「id_rsa.pub」裡面的公鑰。
打開https://github.com/
,登陸xuhaiyan825,然後添加ssh。
5)測試:ssh
[email protected]
the
authenticity
of
host
『github.com
(207.97.227.239)』
can』t
be
established.
rsa
key
fingerprint
is
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
are
you
sure
you
want
to
continue
connecting
(yes/no)?
yes
warning:
permanently
added
『github.com,207.97.227.239′
(rsa)
to
the
list
of
known
hosts.
error:
hi
tekkub!
you』ve
successfully
authenticated,
but
github
does
not
provide
shell
access
connection
to
github.com
closed.
Ⅶ 簡述RSA體制密鑰的生成及其加密、解密演算法。
RSA體制密鑰的生成:
1. 選擇兩個大素數,p 和q 。
2. 計算: n = p * q (p,q分別為兩個互異的大素數,p,q 必須保密,一般要求p,q為安全素數,n的長度大於512bit ,這主要是因為RSA演算法的安全性依賴於因子分解大數問題)。有歐拉函數 (n)=(p-1)(q-1)。
3. 然後隨機選擇加密密鑰e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互質。
4. 最後,利用Euclid 演算法計算解密密鑰d, 滿足de≡1(mod φ(n))。其中n和d也要互質。數e和n是公鑰,d是私鑰。兩個素數p和q不再需要,應該丟棄,不要讓任何人知道。
加密、解密演算法:
1. 加密信息 m(二進製表示)時,首先把m分成等長數據塊 m1 ,m2,..., mi ,塊長s,其中 2^s <= n, s 盡可能的大。
2. 對應的密文是:ci ≡mi^e ( mod n ) ( a )
3. 解密時作如下計算:mi ≡ci^d ( mod n ) ( b ) RSA 可用於數字簽名,方案是用 ( a ) 式簽名, ( b )式驗證。
Ⅷ 如何生成rsa密鑰
速度慢主要是因為大數分解,為了安全性,大數因子位數都在600bits以上。 RSA演算法是第一個能同時用於加密和數字簽名的演算法,也易於理解和操作。 RSA是被研究得最廣泛的公鑰演算法,從提出到現在已近二十年,經歷了各種攻擊的考驗,逐漸為人們接受,...