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

标签 python encryption

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

这是我的编码代码:

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

现在要返回原始密码,我所要做的就是执行以下操作:

base64.b64decode(old_pass)

如果这不安全,我如何使用特定关键字加密字符串——几乎就像主密码一样。

谢谢!

注意** 以下是编码前和编码后的一些示例:

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

# Encoded form of password above
b'Ml0rQyEpNVJAaHdwXHplYkRqT2x4JnhMfWNSceKAnWBu'

最佳答案

And if this is not safe how can I encrypt a string using a specific keyword--almost like a master password.

以下代码片段摘自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')

这是您要找的吗?

关于python - 这是一种在 python 中编码和解码字符串的安全方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158102/

相关文章:

encryption - 数据加密是否属于存储库模式?

python - 退出脚本后如何返回到 python shell?

python - 使用 PolynomialFeatures 和 LinearRegression 拟合更高阶函数

Python - 解释函数参数

python - 在 CLI 应用程序中创建进度条

java - 解密网页cookie

java - 使用 Java 解密使用 Objective-C 加密的 AES 数据

java - 使用Java进行RSA解密

python - 逆向加密算法,将字符串中的每个字符与另一个字符进行异或,使用奇偶校验来控制偏移量

python - Pandas 增加具有混合列类型的数据框的单元格值