写一个python md5
时间: 2023-07-01 12:07:16 浏览: 40
以下是一个 Python 的 hashlib 库实现 MD5 的示例代码:
```python
import hashlib
text = "Hello, World!"
hash_object = hashlib.md5(text.encode())
print(hash_object.hexdigest())
```
输出结果为:
```
3e25960a79dbc69b674cd4ec67a72c62
```
其中,`text` 是需要进行 MD5 哈希的原始字符串,`hashlib.md5(text.encode())` 表示创建一个 MD5 哈希对象并将原始字符串传入进行计算,最后使用 `hexdigest()` 方法获取哈希值并以十六进制字符串的形式输出。
相关问题
用python写一个MD5算法
以下是用Python编写的MD5算法示例:
```python
import math
# 左移位函数
def left_shift(n, b):
return ((n << b) & 0xffffffff) | (n >> (32 - b))
# 初始化MD缓存值
T = [int(abs(math.sin(i + 1)) * 2**32) & 0xffffffff for i in range(64)]
s = [7, 12, 17, 22] * 4 + [5, 9, 14, 20] * 4 + [4, 11, 16, 23] * 4 + [6, 10, 15, 21] * 4
# 定义MD5算法函数
def md5(message):
# 初始化缓存值
A = 0x67452301
B = 0xefcdab89
C = 0x98badcfe
D = 0x10325476
# 填充消息
message = bytearray(message)
orig_len_in_bits = (8 * len(message)) & 0xffffffffffffffff
message.append(0x80)
while len(message) % 64 != 56:
message.append(0)
message += orig_len_in_bits.to_bytes(8, byteorder='little')
# 处理消息
for i in range(0, len(message), 64):
X = message[i:i+64]
words = [int.from_bytes(X[j:j+4], byteorder='little') for j in range(0, 64, 4)]
a, b, c, d = A, B, C, D
for j in range(64):
if j < 16:
F = (b & c) | ((~b) & d)
g = j
elif j < 32:
F = (d & b) | ((~d) & c)
g = (5*j + 1) % 16
elif j < 48:
F = b ^ c ^ d
g = (3*j + 5) % 16
else:
F = c ^ (b | (~d))
g = (7*j) % 16
d = c
c = b
b = left_shift((a + F + T[j] + words[g]) & 0xffffffff, s[j]) + b
a = d
A = (A + a) & 0xffffffff
B = (B + b) & 0xffffffff
C = (C + c) & 0xffffffff
D = (D + d) & 0xffffffff
# 返回MD5值
return '{:08x}{:08x}{:08x}{:08x}'.format(A, B, C, D)
# 测试
if __name__ == '__main__':
message = 'Hello, world!'
print(md5(message.encode())) # 3e25960a79dbc69b674cd4ec67a72c62
```
用python写一个md记事本
以下是一个简单的 Python Markdown 记事本的示例代码,使用了 PySimpleGUI 和 markdown 库:
```python
import PySimpleGUI as sg
import markdown
sg.theme('DarkGrey3')
layout = [
[sg.Menu([['File', ['New', 'Open', 'Save', '---', 'Exit']]], tearoff=False)],
[sg.Multiline(size=(80, 20), font=('Helvetica', 12), key='-EDITOR-'),
sg.VerticalSeparator(),
sg.Multiline(size=(80, 20), font=('Helvetica', 12), key='-VIEWER-')],
]
window = sg.Window('Markdown Editor', layout)
filename = None
while True:
event, values = window.read()
if event in (None, 'Exit'):
break
if event == 'New':
filename = None
window['-EDITOR-'].update('')
window['-VIEWER-'].update('')
continue
if event == 'Open':
filename = sg.popup_get_file('Open File', no_window=True)
if filename:
with open(filename, 'r') as f:
content = f.read()
window['-EDITOR-'].update(content)
window['-VIEWER-'].update(markdown.markdown(content))
continue
if event == 'Save':
if filename:
with open(filename, 'w') as f:
f.write(values['-EDITOR-'])
sg.popup('File saved successfully!', no_titlebar=True)
else:
filename = sg.popup_get_file('Save As', save_as=True, no_window=True)
if filename:
with open(filename, 'w') as f:
f.write(values['-EDITOR-'])
sg.popup('File saved successfully!', no_titlebar=True)
continue
if event == '-EDITOR-':
window['-VIEWER-'].update(markdown.markdown(values['-EDITOR-']))
window.close()
```
这个记事本的界面分为两个部分,左边是编辑区,右边是预览区。你可以在编辑区输入 Markdown 语法的文本,右边的预览区会实时更新 Markdown 渲染后的效果。
程序使用了 PySimpleGUI 创建了一个简单的 GUI 界面,并使用 Markdown 库将编辑区的文本渲染成 HTML,然后显示在预览区中。菜单栏提供了新建、打开、保存和退出等基本功能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)