公钥用来给数据加密,用公钥加密的数据只能使用私钥解密
用来解密公钥加密的数据。
对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得
使用私卖让钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。
是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。
公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串加密后发送给客户端
4、客户端根据自己的私钥解密这个随机字符串之后再发送给服务器
5、服务器接受到字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
进入用户目录下.ssh目录:
id_rsa:私钥文件
id_rsa.pub:公钥文件
authorized_keys: 保存其他公钥的的文件
known_hosts: 已经建立过连接的服务器信息,可以清空。
1.执行命令:
此时会重新生成id_rsa私钥文件和id_rsa.pub公钥文件
用户将公钥发送给其他服务器,其他服务器将接受的公钥保存在authorized_keys里面。持有私钥的用户就可以登录服务器(authorized_keys存放自己的公钥,用户便可以使用私钥从其他的地方登录服务器)。丛配姿
2.将公钥导入到vps
3.修改SSHD的配置文件/etc/ssh/sshd_config
4.重启SSH后进行测试
步骤一:在windows *** 作系统上安装Win64OpenSSL软件; 步骤二:打开Win64OpenSSL软件,首先生成私钥,命令为:ecparam -genkey -name SM2 -out priv.key;
步骤三:再通过生成的私钥生成公钥,命令为:ec -in priv.key -pubout -out pub.key。
验证SM2生成的公私钥 步骤一:首先创建一个file.txt文件(示例放在公私钥同级目录下);
步骤二:打开Win64OpenSSL软件,首先根据私贺迹钥生成签名,命令为:dgst -sign priv.key -sha1 -out sha1_sm2_file.sign file.txt
步骤三:再根据公钥去验证生成的签名,如果公钥和私钥相互匹前肆配,那么生成SM2公私钥成功,命慧拍轿令为:dgst -verify pub.key -sha1 -signature sha1_sm2_file.sign file.txt
文件地址需要修改.上述直接放在d盘中,最后为.key 或者.pem
Download ( GmSSL-master.zip ), uncompress it and go to the source code folder. On Linux and OS X , run the following commands:
安装后,输入gmssl version,报错:
添加两条软连接:
生成私钥
生成公钥
参考 ( https://github.com/guanzhi/GmSSL )
上面生成的公私钥都没法给gmss sm2使用,可以进行加密解密,但是结果是错的
由于提供的公私钥为base64格式,故要进行转码.
四、其他格式互转
字符串与base64不能直接转,需要先转到bytes
私钥自己保存,公钥对外公开,因为私钥是唯一的且只有自己知道,所以完全可以作为一种身份的标识,所以可用来签名。
1、PGP生成账户时在我的文档中会生成secring-bak(私钥),pubring-bak(公钥),导衫歼皮出时不包含私钥文件为2K,包含时为4K,可以用记事本查看。
2、别人的公钥肯定是别人给你,用自己的公钥加密,别人是无法查看的。
3、在导出密钥选择不包含私钥(默认没有选择),即为公钥,可以通过密钥大小或改手文本打开查看。
4、不存在公钥加密再私钥加密,用谁的公钥加密,谁或差才能解密。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)