分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
RSA 是非对称加密算法
对称的加密算法,加密和解密都是使用的一套密钥,而非对称使用的是两套密钥。例如我要传的是18,然后我加密的时候是3*6,然后能我解密的时候,可能是(3*3)*(6/3)=9*2=18 来得到这个18.
我加密的时候是一种密钥,
解密的时候又是一种密钥。
1:加密的密钥与解密的密钥不相同
2: 使用私钥加密的内容,只能通过公钥来解密
使用公钥加密的内容,只能通过私钥来解密
3:公钥,可以对外给任何人的加密和解密密码,公开的,可以任何人访问
4:私钥,私钥是一定要严格保护的,通过私钥可以生成公钥,但是从公钥可以认为是永远无法推导出私钥的。
问题:私钥可以生成公钥,但是公钥不能生成私钥。那么支付宝里面放了私钥合理吗?
-------------------------------------------------------------------------------------------------------------------------
1: 基于公开密钥的加密过程
-------------------------------------------------------------------------------------------------------------------------
比如有两个用户CEO和财务,CEO想把一段明文通过双钥加密的技术发送给财务,财务有一对公钥和私钥,那么加密解密的过程如下:
- 财务将他的公开密钥传送给Alice。(或者CEO从公司的服务器获取公开密钥)
- CEO用财务的公开密钥加密她的消息,然后传送给财务。
- 财务用他的私人密钥解密CEO的消息。
上面的过程可以用下图表示,CEO使用财务的公钥进行加密,财务用自己的私钥进行解密。
--------------------------------------------------------------------------------------------------------------------------------------
http://bbs.csdn.net/topics/390599148
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