• md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证


    1.md5不可逆的加密方式,加密成一个32位的字符串。算法是公开的,任何语言的加密结果都是一样的。总有可能是重复的。
        用途:
                (1)防止明文存储:可以用作密码加密
                (2)防止篡改:判断文件变化,将程序生成一个字节流,然后md5加密一下,判断加密结果是否有变化,可以防止程序挂载木马或者做类似SVN的东西。
                (3)防止抵赖,数字签名。用于第三方认证机构。
        解密:对撞库、穷举法。
        防破解手段:1加盐。用户输入的基础上加上一些字符串然后做md5加密,防止被撞库。2.双md5加密,加密两遍,防止重复。
        扩展-云盘秒传的实现方式:1.用户上传文件后,客户端通过对Stream流或者文件的摘要做一个md5加密 2.判断数据库中是否有相同值的文件,如果有,直接将路径复制一份过来。3.如果没有则不支持秒传。
    2.Des对称可逆加密
        对称:加密解密是同一个key。des是代表性算法,密钥长度为8
        优点速度快,但是秘钥的管理不方便,要求共享秘钥。
    3.RSA非对称可逆加密
       非对称:加密解密不是同一个Key,但是key成对出现。加密key与解密key是不能互相转化的。
       有点:密钥管理方便,缺点速度慢。
       命名:公钥私钥是相对的,其实叫加密key和解密key更贴切,因为有时候需要暴露加密key,有时候需要暴露解密key,被暴露的就是公钥,隐藏的就是私钥。
       过去的加密解密处理方式:
            加密:提供给方法一个需要加密的内容后,加密算法返回三个值:公钥、私钥、和加密值。
            解密:通过私钥和加密内容获得解密结果值。
      新的推荐方式
            通过Rsa类获取KeyValuePair键值对,键为公钥,值为私钥。
            加密:通过公钥加密获取加密值。
            解密:通过私钥解密获取解密值。
    用途:
        1.可以判断请求来源的唯一性、合法性。因为加密解密key是一对的。加密key私有,解密key公开,只有拥有加密key的人才能发送消息。
        2.可以判断请求目的的唯一性、合法性。解密key私有,加密key公开,只有拥有解密key的人才能解密看到。
    4.单边认证https通讯三次握手
     1.client向server发起请求,server返回一个签名和公钥(加密钥)。
     2.client通过公钥加密一个字符串"abcd"发送到服务器,服务器通过私钥(解密key)解密得到"abcd"字符串并返回client表示自己是合法服务器。
     3.client与server开始通过"abcd"作为对称加密的秘钥开始通讯。
    5.网站证书认证
     1.公司像CA机构提交名称网址。
     2.CA机构生成一个签名(MD5加密值),对应一个有效的证书。
     3.公司下载一个证书文件,文件中包含
                                                                1.公司详细信息,MD5信息避免修改
                                                                2.CA机构信息
                                                                3.不对称可逆加密的加密解密Key,然后就可以支持https通讯了。
    6.银行卡双边认证(两对加密解密秘钥)
       1.client向server发起请求,server返回一个签名和公钥(加密钥)。
       2.client通过公钥加密一个字符串"abcd"发送到服务器,服务器通过私钥(解密key)解密得到"abcd"字符串并返回client表示自己是合法服务器。
       3.client确认了服务器的身份并发送证书给server,完成了第一次验证,证书验证。
       4.server完成证书验证后初步认可client的身份并拿公钥加密"1234"并将值发送给client。
        5.client通过私钥解密后将解密值“1234”发送给服务器,服务器校验1234无误,完成第二次验证,秘钥验证。
        6.服务器发送对称加密字符串给client,双方开始通讯。
      
    总结:md5保证文件不被篡改,保证有效,RSA做服务器身份验证,用Des做数据传输。
  • 相关阅读:
    Java【第二篇】基本语法之--进制、运算符
    Java【第一篇】基本语法之--关键字、标识符、变量及分类、数据类型及转换
    安装运行zookeeper的坑
    部署java应用的几种方式
    解决sudo用户找不到环境变量的问题
    Python装饰器详解
    filebeat开启自带模块收集日志如何辨别日志来源等
    使用elasticsearch7.3版本在一台主机上部署多个实例组建集群
    redis 集群搭建
    Kibana多用户创建及角色权限控制
  • 原文地址:https://www.cnblogs.com/chenxizhaolu/p/8428064.html
Copyright © 2020-2023  润新知