一、什么是加密以及解密
    1、加密:网络上传输的原始数据(明文)经过加密后会形成密文传输,防止被窃取
    2、解密:将密文还原成原始数据

二、加密方式分类
    1、对称式加密:对加密和解密使用同一个密钥
    2、非对称式加密:非对称式加密需要两个密钥(双钥),分别叫公钥和私钥,可以相互加解密。
            公钥公开的,不需要保密,私钥需要保密

三、加密方式
    1、对称加密技术:
            DES加密算法
            AES加密算法
            Base64加密算法
    2、非对称加密技术:
            RSA加密算法:
                场景1:公钥加密,私钥解密
                        
                场景2:私钥加密:数字签名;公钥解密:验证签名
                        数字证书由来:因为公钥是公开的不安全,所以需要第三方得CA(数字证书颁发机构)对公钥进行加密,加密后的东西叫做数字证书。
                                数字证书包括:B用户的基本信息、B公钥的信息、有效期;X509的标准。
                                CA:双钥,以通过私钥加密
                                验证签名:身份验证
                            
            Fiddler不能直接抓取https协议的数据报文?
                  需要安装一个数字证书
                        https = http+ssl安全传输协议
                        ssl安全传输协议:安全套接层,NetScape研发。        

    3、MD5:只加密不解密,也叫哈希算法,散列算法
            postman:
                var miwen = CryptoJS.MD5(xxx).toString().toUPPERCase()
            jmeter:    
                ${__digest(MD5,XXX,,,)}
           
        四、接口签名sign原理
            1、什么是接口签名?
                使用用户名,密码,时间戳和所有的排过序之后的参数组合起来,在机密的得到的字符串。字符串是唯一的有权限访问第三方金融接口的鉴权码。 ==sign
            2、为什么需要接口签名?
                1)传统方式没办法满足安全性,防数据泄露
                2)防伪装攻击
                3)防篡改攻击
                4)防重放攻击
            3、如何做接口签名,了解签名规则:
                1)对所有的请求参数的key按照ASCII码做升序排列
                    {"c":"3","b":"2","a":"1"} --->{"a":"1","b":"2","c":"3"}
                2)把参数的名称和参数值连接成字符串
                    a=1&b=2&c=3
                3)用申请到的appid和appsecret连接到字符串的头部
                    appid:用户名
                    appsecret:密码
                    appid=xxx&appsecret=xxxx&a=1&b=2&c=3
                4)用时间戳连接到字符串尾部
                    appid=xxx&appsecret=xxxx&a=1&b=2&c=3&timestamp=121221211
                5)把这个字符串安装32位的MD5加密,加密后转化为大写