这是在python中编码和解码字符串的安全方法吗?

时间:2018-09-04 02:41:14

标签: python encryption

我创建了一个非常简单的密码管理器-而不是GUI。基本上,我的Python程序生成一个字符串,然后对密码进行编码,然后将编码后的表单存储到加密的txt文件中。现在要注意的是,我可以采用该编码形式并将其放入我的python程序中,并返回原始密码。这有多安全?同样,无论出于何种原因,在对密码进行编码后,都会将其添加到密码中:“ b'<-Password here->'。”现在,我要问的是,恶意黑客采用原始形式的编码形式会有多困难?密码并获得原件。

这是我的编码代码:

byte_pass = str.encode(password)
encoded = base64.b64encode(byte_pass)

现在我要做的就是返回原始密码:

base64.b64decode(old_pass)

如果这样做不安全,我该如何使用特定的关键字(几乎像主密码)来加密字符串。

谢谢!

注意**以下是before编码和after编码的一些示例:

# Generated Password    
2]+C!)5R@hwp\zebDjOlx&xL}cRq”`n

# Encoded form of password above
b'Ml0rQyEpNVJAaHdwXHplYkRqT2x4JnhMfWNSceKAnWBu'

1 个答案:

答案 0 :(得分:3)

  

如果这样做不安全,我该如何使用特定的关键字(几乎像主密码)来加密字符串。

下面摘录自Python hashlib的摘录。

from hashlib import blake2b
from hmac import compare_digest

SECRET_KEY = b'pseudorandomly generated server secret key'
AUTH_SIZE = 16 

def sign(cookie):
    h = blake2b(digest_size=AUTH_SIZE, key=SECRET_KEY)
    h.update(cookie)
    return h.hexdigest().encode('utf-8')

def verify(cookie, sig):
    good_sig = sign(cookie)
    return compare_digest(good_sig, sig)

cookie = b'user-alice'
sig = sign(cookie)
print("{0},{1}".format(cookie.decode('utf-8'), sig))

verify(cookie, sig)

verify(b'user-bob', sig)

verify(cookie, b'0102030405060708090a0b0c0d0e0f00')

这是您要寻找的吗?