
什么是非对称加密?对称加解密示例对称加密是加密和解密的密钥一样,那么顾名思义,非对称加密就是加密和解密的密钥不一样。加密的密钥可以让其他人知晓,称为公钥;解密的密钥只能自己知晓,叫做私钥。非对称加密相对于对称加密的优势就在于,传递信息的双方只需要传递公钥,而且公钥是公开透明的,不用担心密钥泄漏问题。在区块链中使用的就是非对称加密。在区块链系统中,当进行交易时,就需要用到私钥(具体怎么用我们后面其它
什么是非对称加密?
对称加解密示例
对称加密是加密和解密的密钥一样,那么顾名思义,非对称加密就是加密和解密的密钥不一样。加密的密钥可以让其他人知晓,称为公钥;解密的密钥只能自己知晓,叫做私钥。非对称加密相对于对称加密的优势就在于,传递信息的双方只需要传递公钥,而且公钥是公开透明的,不用担心密钥泄漏问题。在区块链中使用的就是非对称加密。在区块链系统中,当进行交易时,就需要用到私钥(具体怎么用我们后面其它文章讲解)。
既然进行交易时需要私钥,那么我们具体看看以太坊的私钥是放在哪里的呢?
以linux为例,在我们的以太坊的数据运行目录下,有一个keystore文件夹。在这个文件夹中,保存的就是你私钥对应的密钥文件。
ubuntu系统下keystore文件夹
密钥文件是什么?
密钥文件是创建账户时存在的,它用一个密码保护你对应账户的私钥,可以理解为用密码将你的私钥进行加密后存储的文件。所以,对于以太坊的用户来说,除了要保存好keystore中的密钥文件以外,还需要保护好你创建账户时对应的密码。因为在实际使用时,是通过密码和keystore中的密钥文件一起,恢复出你的私钥,然后进行交易。
如果你非要想看看你以太坊账户的私钥是啥样,那怎么实现喃?
这里我查了一点资料(未实际测试),是用node.js实现的,具体如下:
var keyth=require('keythereum')
var keyobj=keyth.importFromFile('0x...your..ether..address..','your data dir')// your data dir为keystore所在的目录
var privateKey=keyth.recover('your_password',keyobj)
privateKey.toString('hex')
最后这里更新一下对之前那位老兄的回复:我们要保管好私钥,如果是以太坊的话就是保护好keystore文件和对应的密码就可以啦。