4 17 0 RSA 私钥和公钥的一些自己的理解

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

               

RSA 是非对称加密算法

对称的加密算法,加密和解密都是使用的一套密钥,而非对称使用的是两套密钥。

例如我要传的是18,然后我加密的时候是3*6,然后能我解密的时候,可能是(3*3)*(6/3)=9*2=18 来得到这个18.
我加密的时候是一种密钥,
解密的时候又是一种密钥。



1:加密的密钥与解密的密钥不相同 
2:    使用私钥加密的内容,只能通过公钥来解密
      使用公钥加密的内容,只能通过私钥来解密
3:公钥,可以对外给任何人的加密和解密密码,公开的,可以任何人访问

4:私钥,私钥是一定要严格保护的,通过私钥可以生成公钥,但是从公钥可以认为是永远无法推导出私钥的。

问题:私钥可以生成公钥,但是公钥不能生成私钥。那么支付宝里面放了私钥合理吗?


-------------------------------------------------------------------------------------------------------------------------

1: 基于公开密钥的加密过程

-------------------------------------------------------------------------------------------------------------------------

  比如有两个用户CEO和财务,CEO想把一段明文通过双钥加密的技术发送给财务,财务有一对公钥和私钥,那么加密解密的过程如下:

  1. 财务将他的公开密钥传送给Alice。(或者CEO从公司的服务器获取公开密钥)
  2. CEO用财务的公开密钥加密她的消息,然后传送给财务。
  3. 财务用他的私人密钥解密CEO的消息。

  上面的过程可以用下图表示,CEO使用财务的公钥进行加密,财务用自己的私钥进行解密。

------------------------------------------------------------------------------------------------------------------------- 

2:基于公开密钥的认证过程

-------------------------------------------------------------------------------------------------------------------------

  身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。

   还是CEO和财务这两个用户,CEO想让财务知道自己是真实的CEO,而不是假冒的,因此CEO只要使用私钥公钥密码对文件签名发送 给财务,财务使用CEO的公钥对文件进行解密,如果可以解密成功,则证明财务的私钥是正确的,因而就完成了对财务的身份鉴别。整个身 份认证的过程如下:

  1. CEO用她的私人密钥对文件加密,从而对文件签名。
  2. CEO将签名的文件传送给财务。
  3. 财务用CEO的公钥解密文件,从而验证签名。



----------------------------------------

公钥可以分享给任何人的,例如github 上面就是需要我们上传公钥的。

项目中使用到密钥的案例:
案例一:

GitHub的公钥的生成:






--------------------------------------------------------------------------------------------------------------------------------------

http://bbs.csdn.net/topics/390599148

刚接触Git有很多困惑
1.为什么要公钥和私钥呢,到底有啥用呢(详细点)
2.为什么要把我的公钥加到Git项目之中保存起来
3.比如,某路人甲 想给我的项目提供一些代码,他没有我的公钥可以push给我吗?


2. GIT服务器上存储的是公钥,你本地存储的是私钥, 当你push本地代码库到远程代码库,服务器会要求你出示私钥,并且用你出示的私钥和它的公钥配对来完成认证。由于使用的是不对称加密,所以公钥可以公开,只要保管好私钥就可以。
3. 路人甲只要没有私钥,所以无法push。这样才能保证开源项目的完整性,否则阿猫阿狗都去push代码,那项目不就乱套了?如果路人甲想对你的项目做出贡献,那么以GITHUB为例,他会发送一个pull request给你,然后由你来审核他作出的改变,如果审核通过,那么你就可以将他的pull request合并到你工程的某一分支中。这里只以GITHUB为例,私有的GIT服务器可能没有类似功能,比如GITLAB就没有pull request。

--------------------------------------------------------------------------------------------------------------------------------------


-------------------------------------

案例二:


支付宝有两种模式:
一种就是demo里面(demo 只是给我们看怎么弄的),本地支付,但是不安全,
客户端生成Order -> 使用私钥进行签名-》payInfo-》支付宝服务器使用商户的公钥进行校验
一种是通过自己的服务器进行签名:
客户端生成order -》提交给服务器-》服务器计算金额,orderInfo-》通过私钥生成签名sign-》pageInfo-》回来给客户端客户端再将这个信息给支付宝


支付宝也需要用到公钥,私钥,我们的项目里面填写私钥就好了,支付宝那边已经有了公钥了





公钥,上传给服务器,服务器就认可这台电脑私钥加密的东西。
在PayDemoActivity:里面有。下面的几个是公司给的或者是你帮公司申请的。
// 商户PIDpublic static final String PARTNER = "2088601082136243";// 商户收款账号public static final String SELLER = "xiexiewangkeji@163.com";// 商户私钥,pkcs8格式
// 客户端使用的私钥,对于请求进行数字签名,传给服务器,服务器使用公钥进行验证public static final String RSA_PRIVATE = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM62H9NVaAFL54uyqjNv11J7eeOsh/xRQ2c31zUXGmFvuq5iUVxahQBNKa5O3w4qoOdzCt6yw+Fcl9hN/9NV9pWiCUBzNBluUMyqTb2Qs+bULisevBk810Uevo/Cct+gu+6e2tTal2dXszAXK7tYjJqd5Rzmc/qJRzFPNn4j3W2NAgMBAAECgYEAwEDBHtPrNHF9O/+Cru5RLGSs++SmYTTPZLuZy8XeAkthK/lDRIrn8lzR7E1sxYc+OaVUscU/y2VL0KDS06K6/8gVCcJe4UiCjIBXyhmwNBKBHf4jlKKAlaWZkPwJSxpfE1O16epBvTHZdyEY0ALfMnvQlUZ8RAAXo5DHGutHscECQQD++08BYfWDhYVpDzlEcPM+9fyecen8vGiX/T0+LB88kREIldjiQmqJyBvKECRBUJYg+2mqHGQjQMfBHfaaUsC9AkEAz4l27Qps5e93EmNlDn3RsMH+JVzMu0442nA8SbpRJOtmuqYDZAH7W2uj3J3J1gIbZg5zCxQc9rLDYcq2wo21EQJBAK1x/ZgPLpa8qLeCZ44q1wwpACI3ktccwnlBBfvYv5bPhyqz48hlLVt0B5M3z7GuQ7FD0+inT2a7liXDYBAx4nECQD8SSsc9LN0wSmKXPGYMDMcIHcGjE0E1Q4f3JgtOCU0MEVtWCp/BDm+5JcJtXaKhX0xDxeivAyJiL4ivv50ezdECQHptoOYG0tMCHL0oOXrZXsdpAFL/c8vX25Oq/uaYaR+Zgv02ipt+81YQ+8nYTwD55TZytt0TcifqUQhDf0y7XyQ=";// 支付宝公钥public static final String RSA_PUBLIC = "";




           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值