zoukankan      html  css  js  c++  java
  • 三种常见加密算法MD5、对称加密,非对称加密【多测师_王sir】

    一、MD5加密
    MD5加密的特点:
    不可逆运算(不能破解、不能解密)
    对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)
    对相同的数据加密,得到的结果是一样的(也就是复制)
    抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 
    MD5 值都有很大区别.
    弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造
    数据)是非常困难的
    强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的
    #coding=utf-8
    """
    ===========================
    Author:多测师_王sir
    Time:2020-07-06 15:54
    Wechat:15367499889
    Company:上海多测师信息有限公司
    ===========================
    """
    import hashlib
    
    def duoceshi_cn():
        '''对多测师网站www.duoceshi.cn进行加密'''
        data = 'www.duoceshi.cn'
        md5 = hashlib.md5()   #生成md5加密对象
        md5.update(data.encode('utf-8'))
        sign = md5.hexdigest()
        print('对多测师网站www.duoceshi.cn进行加密得到的密文为:{}'.format(sign))
    
    def duoceshi_com():
        '''对多测师网站www.duoceshi.com进行加密'''
        data = 'www.duoceshi.com'
        md5 = hashlib.md5()   #生成md5加密对象
        md5.update(data.encode('utf-8'))
        sign = md5.hexdigest()
        print('对多测师网站www.duoceshi.com进行加密得到的密文为:{}'.format(sign))
    
    if __name__ == '__main__':
        duoceshi_cn()
        duoceshi_com()
    
    运行结果如下:
    对多测师网站www.duoceshi.cn进行加密得到的密文为:6288f286d86886810215373b0916e47e
    对多测师网站www.duoceshi.com进行加密得到的密文为:78c97debe231347bb7f7447c6ad8d1fa
    二、对称加密
    简介: 
    对称加密算法又称传统加密算法。 
    加密和解密使用同一个密钥。
    加密解密过程:明文->密钥加密->密文,密文->密钥解密->明文
    
    示例: 
    密钥:www.duoceshi.cn
    加密算法:每个字符+www.duoceshi.cn
    明文:dcs
    密钥为 1时加密结果:abmmx 
    密钥为 2时加密结果:dwddx
    
    优缺点: 
    算法公开,计算量小,加密速度快,加密效率高 
    双方使用相同的钥匙,安全性得不到保证
    
    
    经典加密算法有三种: 
    1. DES(Data Encryption Standard):数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解) 
    2. 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。
    (缺点:要维护3个密钥,大大增加了维护成本)
    3. AES(Advanced Encryption Standard):高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的
    就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。
    三、非对称加密RSA
    简介: 
    1. 对称加密算法又称现代加密算法。 
    2. 非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。 
    3. 非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey) 
    4. 公开密钥和私有密钥是一对
    
    特点:
    加密的公钥和私钥不同、都是后端服务器生成给到前端的
    如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。 
    如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
    算法强度复杂,安全性依赖于算法与密钥。 
    加密解密速度慢。
    
    与对称加密算法的对比: 
    对称加密只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。 
    非对称加密有两种密钥,其中一个是公开的。
    
    RSA 和 AES 双重配合加密
    RSA加密复杂安全,但是加解密的性能差,适合对于小数据进行加密
    AES加密相对简单,但是加解密的性能强,适合对于大数据进行加密
    RSA应用场景: 由于RSA算法的加密解密速度要比对称算法速度慢很多,在实际应用中,
    通常采取:数据本身的加密和解密使用对称加密算法(AES)。 用RSA算法加密并传输对称算法所需的密钥。

    
    
     
  • 相关阅读:
    android开发环境搭建日记和嵌入式Android开发环境初探
    QT210 android2.3 和android4.0 烧写编译日记
    RAM,SRAM,DRAM,SDRAM,DDR RAM,ROM,PROM,EPROM,EEPROM,NAND FLASH,NOR FLASH的区别
    如何修改终端用户名颜色修改为红色(可以自由定制)
    FPGA机器学习之stanford机器学习第三堂2
    FPGA机器学习之stanford机器学习第三堂1
    FPGA机器学习之stanford机器学习第二堂2
    FPGA机器学习之stanford机器学习第二堂1
    FPGA机器学习之stanford机器学习第一堂
    FPGA片外存储器ddr2之DQSn引脚的分析
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13255286.html
Copyright © 2011-2022 走看看