1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # -*- coding: utf-8 -*-
- """
- @author: Allen
- @Created on: 2023/10/18
- @Remark:
- """
- import hashlib
- import random
- from decimal import Decimal
- CHAR_SET = ("2", "3", "4", "5",
- "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H",
- "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V",
- "W", "X", "Y", "Z")
- def random_str(number=16):
- """
- 返回特定长度的随机字符串(非进制)
- :return:
- """
- result = ""
- for i in range(0, number):
- inx = random.randint(0, len(CHAR_SET) - 1)
- result += CHAR_SET[inx]
- return result
- def has_md5(str, salt='123456'):
- """
- md5 加密
- :param str:
- :param salt:
- :return:
- """
- # satl是盐值,默认是123456
- str = str + salt
- md = hashlib.md5() # 构造一个md5对象
- md.update(str.encode())
- res = md.hexdigest()
- return res
- def format_bytes(size, decimals=2):
- """
- 格式化字节大小
- :param size:
- :param decimals:
- :return:
- """
- if isinstance(size, (str)) and size.isnumeric():
- size = int(size)
- elif not isinstance(size, (int, float, Decimal)):
- return size
- if size == 0:
- return "0 Bytes"
- units = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
- i = 0
- while size >= 1024:
- size /= 1024
- i += 1
- return f"{round(size, decimals)} {units[i]}"
|