字符串以及文件的hashlib的md5和sha1等的运用

hashlib的md5和sha1等的运用

import hashlib
print(hashlib.algorithms_available)
print(hashlib.algorithms_guaranteed)

#MD5
import hashlib
hash_object = hashlib.md5(b‘Hello World‘)
print(hash_object.hexdigest())

#
import hashlib
mystring = input(‘Enter String to hash: ‘)
# Assumes the default UTF-8
hash_object = hashlib.md5(mystring.encode())
print(hash_object.hexdigest())

#sha1
import hashlib
hash_object = hashlib.sha1(b‘Hello World‘)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha224
import hashlib
hash_object = hashlib.sha224(b‘Hello World‘)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha256
import hashlib
hash_object = hashlib.sha256(b‘Hello World‘)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha384
import hashlib
hash_object = hashlib.sha384(b‘Hello World‘)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#sha512
import hashlib
hash_object = hashlib.sha512(b‘Hello World‘)
hex_dig = hash_object.hexdigest()
print(hex_dig)

#new&update
import hashlib
hash_object = hashlib.new(‘DSA‘)
hash_object.update(b‘Hello World‘)
print(hash_object.hexdigest())

例:

import uuid
import hashlib

def hash_password(password):
    # uuid is used to generate a random number
    salt = uuid.uuid4().hex
    return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ‘:‘ + salt

def check_password(hashed_password, user_password):
    password, salt = hashed_password.split(‘:‘)
    return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()

new_pass = input(‘Please enter a password: ‘)
hashed_password = hash_password(new_pass)
print(‘The string to store in the db is: ‘ + hashed_password)
old_pass = input(‘Now please enter the password again to check: ‘)
if check_password(hashed_password, old_pass):
    print(‘You entered the right password‘)
else:
    print(‘I am sorry but the password does not match‘)

文件的hash

#MD5 File Hash in Python
import hashlib
hasher = hashlib.md5()
with open(‘myfile.jpg‘, ‘rb‘) as afile:
    buf = afile.read()
    hasher.update(buf)
print(hasher.hexdigest())

#MD5 Hash for Large Files in Python
import hashlib
BLOCKSIZE = 65536
hasher = hashlib.md5()
with open(‘anotherfile.txt‘, ‘rb‘) as afile:
    buf = afile.read(BLOCKSIZE)
    while len(buf) > 0:
        hasher.update(buf)
        buf = afile.read(BLOCKSIZE)
print(hasher.hexdigest())

#SHA1 File Hash in Python
import hashlib
BLOCKSIZE = 65536
hasher = hashlib.sha1()
with open(‘anotherfile.txt‘, ‘rb‘) as afile:
    buf = afile.read(BLOCKSIZE)
    while len(buf) > 0:
        hasher.update(buf)
        buf = afile.read(BLOCKSIZE)
print(hasher.hexdigest())
时间: 2024-10-10 09:17:11

字符串以及文件的hashlib的md5和sha1等的运用的相关文章

使用python求字符串或文件的MD5

使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=hashlib.md5('字符串'.encode('utf-8′)).hexdigest() print(md5) #求文件md5 import hashlib #文件位置中的路径,请用双反斜杠,如'D:\\abc\\www\\b.msi' file='[文件位置]' md5file=open(fil

字符串和文件的MD5

1 [1] 计算文件MD5值的方法: 2 /// <summary> 3 /// 计算文件MD5值 4 /// </summary> 5 /// <param name="str">需要计算的文件路径</param> 6 /// <returns>MD5值</returns> 7 public static string MD5Value(String filepath) 8 { 9 MD5 md5 = new M

Java利用MessageDigest提供的MD5算法加密字符串或文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了解这些的话,可以去百度百科:MD5.SHA1.消息摘要算法. Java已经实现了MD5.SHA1算法.利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果. 1.字符串的MD5(下面的代码有详细注释) public static String s

python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.cnblogs.com/BeginMan/p/3328172.html #以常见的摘要算法MD5为例,计算出一个字符串的MD5值 import hashlib m = hashlib.md5() #创建hash对象 m.update('xiaodeng') #更新哈希对象以字符串参数 print m.

C# 计算字符串的哈希值(MD5、SHA)

一.关于本文 本文中是一个类库,包括下面几个函数: 1)计算32位MD5码(大小写):Hash_MD5_32 2)计算16位MD5码(大小写):Hash_MD5_16 3)计算32位2重MD5码(大小写):Hash_2_MD5_32 4)计算16位2重MD5码(大小写):Hash_2_MD5_16 5)计算SHA-1码(大小写):Hash_SHA_1 6)计算SHA-256码(大小写):Hash_SHA_256 7)计算SHA-384码(大小写):Hash_SHA_384 8)计算SHA-512

搜索文件或目录中包含字符串的文件 java小程序

package com.ruishenh.spring.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Enumeration; import java.

小白学开发(iOS)OC_ 字符串写入文件(2015-08-13)

// //  main.m //  字符串写入文件 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 将字符串写入到一个文件,并保存 > 需要写入文件的字符串内容

[转]java将字符串写入文件中

Java代码   import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.io.RandomAccessFile; publi

描述字符串写入文件

import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Text { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { FileOutputStream out =new Fi