Python之sha256算法实现代码分享(含分布计算哈希值算法)
import os
import sys
import datetime
from collections import OrderedDict
from X_conversion import *
import hashlib
import base64
import binascii
def main(argv):
xh = X_hash()
xh.test()
def sha256_hash(data:str):
sha256 = hashlib.sha256()
sha256.update(str2bytes(data))
hash_value = sha256.hexdigest()
return hash_value
def sha256_hash_step(data_s:list):
sha256 = hashlib.sha256()
for data in data_s:
sha256.update(str2bytes(data))
return sha256.hexdigest()
class X_hash(object):
def __init__(self):
self.version = 'V1.0.0'
self.xc = X_conversion()
def sha256_hash(self, data:str):
sha256 = hashlib.sha256()
sha256.update(str2bytes(data))
hash_value = sha256.hexdigest()
return hash_value
def sha256_hash_step(self, data_s:list):
sha256 = hashlib.sha256()
for data in data_s:
sha256.update(str2bytes(data))
return sha256.hexdigest()
def test(self):
print('X_hash test start ********************************************************')
message = "Hello World!"
message_s = ["Hello", " ", "World!"]
message_hash256_str = self.sha256_hash(message)
message_hash256_bytes = str2bytes(message_hash256_str)
message_hash256_str_len = len(message_hash256_str)
print('message_hash256_str: ', type(message_hash256_str),'@', message_hash256_str)
print('message_hash256_str_len: ', type(message_hash256_str_len),'@', message_hash256_str_len)
print('\n')
message_hash256_str = self.sha256_hash_step(message_s)
message_hash256_bytes = str2bytes(message_hash256_str)
message_hash256_str_len = len(message_hash256_str)
print('message_hash256_str: ', type(message_hash256_str),'@', message_hash256_str)
print('message_hash256_str_len: ', type(message_hash256_str_len),'@', message_hash256_str_len)
print('X_hash test end ********************************************************\n\n')
if __name__ == "__main__":
main(sys.argv[1:])
《AUTOSAR谱系分解(ETAS工具链)》之总目录