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格式(加密后的数据格式)。

  • 相关阅读:
    RabbitMQ安装与配置
    在Web项目中使用shiro
    solr整合spring
    mycat
    SpringSession管理
    Nginx安装与配置(Nginx服务器和Tomcat服务器是不同的服务器)
    dubbo负载均衡与服务降级以及Zookeeper认证
    小笔记
    SpringMVC路径转发与重定向
    java-同步控制及不可变设置(只读访问)
  • 原文地址:https://www.cnblogs.com/allen2333/p/9068038.html
Copyright © 2011-2022 走看看