• 加密算法RSA和Base64的关系


    在使用RSA非对称加密的时候,我们会发现里面出现Base64的身影,那他们之间有什么关系呢?

    一、RSA是加密算法,非对称加密,拥有两把密钥,一把公钥,一把私钥。

    通信双方会分别生成一对公私钥,双方交换公钥。通信过程会传输加密文本和签名。

    加密解密过程:服务器会把公钥发送给每一个客户端,客户端在向服务器发送数据时,用公钥进行加密,但是最终解密数据不是用公钥,而是通过私钥解密,私钥不会发给任何人,只会牢牢保护在服务端。

    加密:是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击,其重点在于数据的安全性。

    加签验签过程:客户端在向服务器发送数据时,首先利用MD5等HASH算法对需要传输的文本计算摘要值,然后利用私钥对摘要值进行加密,得到的密文即被称为该次传输过程的签名。数据接收端,拿到签名后利用自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密),得到文本的摘要,然后使用与发送方同样的HASH算法对文本计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

    加签:目的是确认该文本是否是发送端发出的内容,中途是否曾经被篡改。

    公钥加密 --- 私钥解密
    私钥加签 --- 公钥验签  


    二、Base64不是加密解密算法,只是个编码解码的算法。

    Base64和RSA相伴相生,主要是为了防止乱码的产生,加密的数据只是改变其形式不出现乱码,但是发出和接收时数据未发生改变。

    Base64流程:

    1.原有的公钥Key文件中存放的Base64格式的公钥,那么我们读取回来进行使用,就需要先用Base64解码,获取我们原有的公钥字节
    2.加密数据
    3.把加密的数据提交给服务器,但是加密过的数据是一堆乱码,直接提交会有问题,所以我们再将这些乱码用Base64进行编码
    4.将来服务器收到我们的数据,需要先用Base64解码,获取到原始加密数据
    5.用私钥解密

  • 相关阅读:
    Windows 7 X64平台编译LLVM+clang
    web前后端分离漏洞分析防御
    微信小程序中显示html富文本的方法
    微信小程序上拉加载下拉刷新
    微信小程序横向滚动
    微信小程序中的自定义组件 以及 相关的坑
    一款易用、高可定制的vue翻页组件 vo-pages
    vue调用高德地图:vue-amap
    Vue 前端md5加密
    js手机号码中间用星号代替。银行卡后四位之外改为星号
  • 原文地址:https://www.cnblogs.com/coderxiaobai/p/16287662.html
Copyright © 2020-2023  润新知