zoukankan      html  css  js  c++  java
  • 加密

    使用Python的hashlib类进行加密:

    hashlib是个专门提供hash算法的库,里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。

    MD5

    MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。

    具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。

    SHA1

    SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的数据长度更长,

    它对长度小于264的输入,产生长度为160bit的散列值。比MD5多32位。因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢了

    import hashlib
    a='abcd'
    b='abcd'
    m=hashlib.md5(a).hexdigest()
    n=hashlib.md5(b).hexdigest()
    
    m == n 返回True
    print m
    返回:e2fc714c4727ee9395f324cd2e7f331f

    使用django的api(make_password, check_password)进行密码的加密与验证

    make_password(password[, salt, hashers])

    from django.contrib.auth.hashers import make_password, check_password
    #make_password 用于加密密码
    #check_password用于验证输入的密码是否正确
    
    a='abcd'
    passwd = make_password(a, None, 'pbkdf2_sha256') 
    print passwd 返回: u'pbkdf2_sha256$20000$rkolStxsoOG9$LeokGEsTcxhpHrl6JOfTzCZIPLC23YL3n6KPcpEF9qU=' check_password(b,passwd) 返回True

    make_password每次返回的字符串都不相同,如果需要返回相同的字符串,可以把make_password的第二个函数给一个固定的字符串如下:
    make_password(a,‘abc’, 'pbkdf2_sha256')
    如果第二个参数为空,则相当于make_password(a, None, 'pbkdf2_sha256')

     
  • 相关阅读:
    文件批量上传
    XML如何不进行解析原样输出
    1456710017
    java标准百分比
    解决SSM项目下静态资源(img、js、css)无法引用的问题
    MySQL查询当天数据以及大量查询时提升速度
    多线程test
    JAVA中等待所有线程都执行结束(转2)
    java中等待所有线程都执行结束
    关于Java多线程(JAVA多线程实现的四种方式)
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/5242122.html
Copyright © 2011-2022 走看看