首页 > 编程知识 正文

python实现rsa加密解密,python源代码加密

时间:2023-05-04 06:56:11 阅读:23971 作者:4776

一*混列模块

1 .聪明的雨算法聪明的雨函数又称散列函数,将数据转换成一系列数字

对同一数据同时运行同一数据的聪明雨的结果是相同的

对于所有相同的值,聪明的雨的结果是一样的

聪明的雨不变型数字字符串

不聪明的可变雨类型词典元组列表

词典的key键不变且唯一的*聪明的雨*,value值可变*不聪明的雨*

set集合是去除重量的,也是散列函数

2.hashlib模块已加密

1 .加密,即摘要算法的使用方法import hashlib

md5行业最常见的算法32位十六进制

sha1算法40位十六进制

文件一致性

加密验证

基本摘要与库冲突

加盐是恶意注册

动态加盐-------用安全的username片修饰

2.hmac封装混存

HMAC(b'salt ',b'hello ',md5 ) )。

obj=hashlib.sha1 (

obj.digest(#字节串

3 .获取随机数

导入操作系统

print(OS.urandom(20 ) )

3 .登录案例

用户密码是hello

a.txt

4.MD5加盐验证文件完整性

二* hashlib的sha1算法

2 .确认客户端是否合法

server.py

client.py

3 .验证客户端是否合法后进行通话

server.py导入套接字

import hashlib

sk=socket.socket (

SK.bind () (127.0.0.1 )、9090 ) )

SK.Listen(5) )。

conn,addr=sk.accept (

salt='hello '

str='来医院'

ret _ s=conn.send (str.encode (utf-8 ) ) )

ret_c=Conn.recv(1024 ).decode(utf-8 ) ) ) ) )。

打印(ret _ c )是

#加密接收到的内容

obj=hash lib.MD5 (salt.encode (' utf-8 ' ) )

obj.update(str.encode ) (utf-8 ) ) )

str_obj=obj.hexdigest (

#比较加密的内容和加密前的内容

if ret_c==str_obj:

print (('合法客户端许可链接) ) ) ) ) ) )。

while True:

向s=input (客户端)、encode (编码)、utf-8 )发送信息

是ret=Conn.send(s )

是打印(ret )

msg=Conn.recv(1024 ).decode(utf-8 ) ) ) ) ) ) ) )。

是打印(msg )

else:

print )“连接了非法的客户端”

conn.close ()

sk.close ()。

client.py

三*验证合法后进行打包

1.server.py

#创建连接导入hmac

def mysocket () :

sk=socket.socket (

SK.bind () (127.0.0.1 )、8080 ) )

SK.Listen(3) )。

conn,addr=sk.accept (

返回连接,sk

#验证

EFAuth(Conn,sk ) :

salt=b'hello '

str=OS.urandom(20 ) )。

Conn.send(str )发送字节串

MD5_s=Conn.recv(1024 )接收来自客户端的MD5_s

#以下为混列模块

#obj=hashlib.MD5(salt )

#是#obj.update(str )

# r_str=obj.hexdigest (

#以下为hmac模块

obj=hmac.new(salt,str ) )。

r_str=obj.digest (

if md5_s==r_str:

print ('合法客户端,允许连接!' )

com () )

else:

打印(违法! ' )

conn.close ()

sk.close ()。

#通信函数

defcom(:

while True:

s=input ('向客户端发送消息() ).encode ) (utf-8 ) ) ) ) )。

是Conn.send(s )

msg=Conn.recv(1024 ).decode(utf-8 ) ) ) ) ) ) ) )。

是打印(msg )

if __name__=='__main__':

conn,sk=mysocket ()

自动(连接,sk ) )。

cient.pyimport hmac

def mysocket () :

sk=socket.socket (

sk.connect((127.0.0.1 )、8080 ) )

返回sk

EFAuth(sk ) :

salt=b'hello '

bytes=sk.recv(1024 )接收字符串

#以下为混列模块

#obj=hashlib.MD5(salt )

#是#obj.update(s )

# r_str=obj.hexdigest (

#以下为hmac模块

obj=hmac.new(salt,bytes ) ) ) ) )。

r_str=obj.digest (

sk.send(r_str )是

com () )

sk.close ()。

defcom(:

while True:

msg=sk.recv(1024 ).decode () utf-8 () )。

是打印(msg )

s=input ('向服务器发送消息() ).encode ) (utf-8 ) ) ) ) )。

sk.send(s )。

if __name__=='__main__':

sk=mysocket ()

是自动(sk )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。