以太坊公私密钥生成
Ⅰ 知道以太坊(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是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,...