请求加密

常用加密方式

  • 哈希(散列)函数:MD5、SHA
    MD5特点:
    1.任何输入的信息都能得到32位的字符串
    2.加密结果不可逆(无法还原)
    3.对相同的数据加密结果都是一样的
    缺点:不安全,可通过穷举反推加密结果。MD5解密网站
    优点:如果是上传文件,把文件data用md5加密后,传递到服务端可判断是否已存在,直接秒传。服务端只保留一份数据。

    升级版:在明文固定位置加入足够复杂的字符串,再进行MD5加密
    缺点:字符串是固定不变的,也易破解

    NSString *paramsString = @"a=1&b=2....";

    NSString *keyString = @"shiflksjdhfklasjdflaskjdfksj";
    
    NSString *md5String = [[NSString stringWithFormat:@"%@%@",paramsString,keyString] md5];
  • 对称加密:DES、3DES、AES等
    用同一套密钥来进行加密解密
    即:明文 -> 加密(A)-> 密文
    密文 -> 解密(A)-> 明文

优点:算法公开,计算量小,加密效率高
缺点:密钥易泄露,不安全


image.png
  • 非对称加密:RSA、Elgamal等,RSA使用最广泛
    指加密和解密使用不同密钥的加密算法,公开密钥(简称公钥)和私有密钥(简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。

工作原理:
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥(有2对密钥)

2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。

3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。

4.A将这个消息发给B(已经用B的公钥加密消息)。

5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

image.png

你可能感兴趣的:(请求加密)