zoukankan      html  css  js  c++  java
  • 计算机基础

    1. 哈希算法

    摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。(这个固定的字符串可以代表这个数据,所以叫摘要)

    1.1 md5、sha1等等。另外Hmac也是hash算法,基础是md5、sha1等,还需要key。

    1.2 MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。

    import hashlib
    
    md5 = hashlib.md5()                    #调用md5算法
    md5.update('allen'.encode("utf-8"))     #对字符串"allen"加密
    print(md5.hexdigest())
    
    import hashlib
    
    md5 = hashlib.md5()
    md5.update('how to use md5 in '.encode("utf-8"))
    md5.update('python hashlib?'.encode("utf-8"))
    print(md5.hexdigest())
    

    1.3 SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。

    import hashlib
    
    sha1 = hashlib.sha1()
    sha1.update('how to use sha1 in '.encode("utf-8"))
    sha1.update('python hashlib?'.encode("utf-8"))
    print(sha1.hexdigest())
    

    2. 对称加密算法

    2.1 加解密都用同一个密钥。
    2.2 AES,需要key和IV(Initial Vector)不同的系统只要IV不同,用相同的密钥加密相同的数据得到的加密结果也是不同的。
    2.3 如果加解密双方一方用Nodejs,另一方用Java、PHP等其它语言,需要仔细测试。如果无法正确解密,要确认双方是否遵循同样的AES算法,字符串密钥和IV是否相同,加密后的数据是否统一为hex或base64格式(加密后的数据格式)。

  • 相关阅读:
    易用网页下载器V0.1
    重复造轮之权限管理系统
    网页格式化排版代码,专用信息采集后的内容整理
    随机点名软件
    PHP导入Excel表格,读取Excel的内容到数组。
    汉字的书写效果的实现
    php的一个断点续传下载实现
    sentry的安装和使用以及各种问题处理
    CentOS下安装Redis及Redis的PHP扩展
    用ASP.NET_Regsql.exe创建Session数据库
  • 原文地址:https://www.cnblogs.com/allen2333/p/9068038.html
Copyright © 2011-2022 走看看