欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程资源 > 编程问答 >内容正文

编程问答

加密、解密、摘要、签名、证书一文搞懂 -凯发k8官方网

发布时间:2024/9/30 编程问答 41 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 加密、解密、摘要、签名、证书一文搞懂 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

概念

是否可逆意思算法举例说明能力
可逆加密过后的数据可以解密出来aes,des,3des等对称加密
rsa,rsa2等非对称,公钥加密私钥解密或者反过来,用于验签加密的数据越多越慢,rsa2目前只能加密少于密钥长度的数据,目前的计算机还不能破解2048长度的密文
不可逆加密过了就没法解开了,唯一的数据加密后的结果唯一md5,sha1,sha256,sha512等一般不称之为加密算法,而叫摘要算法快,据说google暴力破解过sha1算法了

从普通加密解密到证书的过程

以服务端s到客户端c的单向通信举例

  • 对称加密存在的问题是c和s怎么传盐,无论放在互联网的任何地方,盐被偷了,又知道你们的加密算法,肯定能破解。
  • 不可逆加密,数据就失去可读性,c和s得到不认识的数据,倒是可以用于验签,但是这么干不是吃饱了撑的?
  • 从真实数据到证书的过程:
  • rsa2(包括rsa)会生成公钥和私钥,公钥加密的数据私钥可以解开,反之亦可,私钥s持有(不会泄露),公钥多个c持有,如果s不小心把公钥下发给不想下发的c(统称黑客)或者包被劫持,那黑客就可以用公钥解开数据进行篡改再发给s进行攻击。所以要解决的问题两个,问题一是数据防篡改,问题二是公钥要发给自己信任的c(从c来说就是要保证公钥是你的s下发的),也就是不能再网络上直接传输。
  • 解决问题一,用不可逆算法把数据(明文 盐,我理解的这里加盐是进一步确保明文更复杂,不容易猜到)加密,即md5(sha1、sha256、sha512等)对数据加密,生成的东西叫摘要(所以这些算法也叫摘要算法)。因为不同的数据用不可逆算法加密之后的结果唯一,如果数据被篡改,则生成的摘要不同,验证的时候就知道被改过了。
  • 摘要再用s的的私钥加密,生成的东西就叫签名c和s传数据的时候,如果只传摘要,这是解不开的,没有意义,所以s给c传的数据包应该包含摘要和真实数据明文,让c可以用公钥解开签名得到明文和摘要,然后用明文 盐生成摘要对比一下s传过来的摘要,这叫验签,通过得话说明就是你的s传过来的数据没被篡改,然后就可以用明文进行自己的逻辑。到这里一个完整的签名和验签过程就成了。
  • 解决问题二,为什么要证书,证书即ca,是一个第三方机构。一般的场景是,大公司的s只有一个,c却是无数多个,s自己都不知道又哪些c。那么c怎么拿到s的公钥呢,这时候ca就上场了,s会向ca机构上交自己的公钥(还有公司组织的其他信息),ca用自己的私钥加密,生成的东西就叫证书,那c要又ca的公钥才能解开证书并得到自己s的公钥啊?ca是怎么办的呢?ca是一家或者多家很有钱的公司,s向他申请证书的时候都有保险的,要是ca把s的公钥泄露了要赔很多钱,所以这么大的公司ca就买通比如浏览器厂商这样的超大的c,把证书内嵌到浏览器里或者计算机系统里。就不存在网络传输被拦截的风险了。https协议就是这么回事了。
    • 一般加密通信的流程(比如银行)

    以上说的是s到c的单向通信,s端需要解密和验签,c端同样,所以流程是这样的。

    • c生成自己的公钥和私钥(比如用openssl工具生成,支付宝平台可以在线生成),s生成自己的公钥和私钥,s另外再生成盐(用于摘要的盐,不是对称加密的盐),然后c在s的后台管理系统注册登录,上交自己的公钥,c同时获得s的盐和公钥。因为c是在s的系统里获取的,相当于在s的系统里把自己的公钥手写进去和把s的公钥和盐手抄下来,没有网络传输,所以还是安全的。
    • 然后c和s通信或者s向c通信的时候就用相同的摘要算法(这个算法c和s线下商定)对明文 盐进行摘要,然后用自己的私钥对明文和摘要(一般是直接拼接字符串)加密,即生成签名,然后就可以把摘要 签名(统称包)在网络上传输。对方取得包之后用自己的私钥解开,得到明文和摘要,再用明文 盐生成摘要对比一下对方传过来的摘要,即验签,对的上得话说明数据没被篡改,安全,就可以用明文进行自己的工作了。

    总结

    以上是凯发k8官方网为你收集整理的加密、解密、摘要、签名、证书一文搞懂的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

    • 上一篇:
    • 下一篇:
    网站地图