我已经提出了使用Python的加密例程,我很感激任何人都可以看一下.我正在寻找一些信息; 之前是否使用过此方法/变体,如果是这样,它的名称是什么?它有多安全?
我们的想法是通过互联网传输数据,并使用双方都知道的两个密码进行加密.
它使用SHA1哈希对密码进行编码,然后使用哈希中的字符创建偏移查找表.将偏移值添加到普通字符以生成加密字符.它使用一对一方法而不是压缩或添加数据.
字符串'Hello StackOverflow'生成'wPjOew6AdoNOYgjf7y'如果两个SHA1哈希是使用'burger'和'meat'生成的.
这是整个代码,对于超长字典数组抱歉:S
代码运行使用:win32上的Python 2.7.2(默认,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔)]
import sys
# burger
sha1_pass1 = '7a86b15480e0a870f0b07a4d23a54ef8f9acac44'
# meat
sha1_pass2 = 'bb40f75a9c6038e0da200fc5c3a6f371c1592c66'
# Characters available to encrypt (can be extended)
valid_chars = '0123456789 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.,!?' * 2
offset = {'00':0,
'01':1,
'02':2,
'03':3,
'04':4,
'05':5,
'06':6,
'07':7,
'08':8,
'09':9,
'0a':10,
'0b':11,
'0c':12,
'0d':13,
'0e':14,
'0f':15,
'10':16,
'11':17,
'12':18,
'13':19,
'14':20,
'15':21,
'16':22,
'17':23,
'18':24,
'19':25,
'1a':26,
'1b':27,
'1c':28,
'1d':29,
'1e':30,
'1f':31,
'20':32,
'21':33,
'22':34,
'23':35,
'24':36,
'25':37,
'26':38,
'27':39,
'28':40, …Run Code Online (Sandbox Code Playgroud)