我正在使用sqlalchemy和oracle,但我不想将数据库密码直接存储在连接字符串中,如何存储加密的密码?
qfe3c7zg1#
您可以对字符串进行编码,但编码并不像注解中提到的Gord Thompson那样加密。任何对base64有一点了解的人都可以反转它。
import base64 password = "yourpassword".encode("utf-8") encoded = base64.b64encode(password) print(encoded)
字符集解码它是一个
decoded = base64.decodebytes(encoded).decode('utf-8') print(decoded)
型
您可以使用哈希密码:
代码,
from werkzeug.security import generate_password_hash password = "your_password_here" hashed_password = generate_password_hash(password, method='sha256')
cgh8pdjw2#
我猜你正在寻找模块PyCrypto您可以使用您想要的加密和存储在数据库中的加密文本,并在获取数据后,您可以再次解密它。下面是PyCrypto的例子:
>>> from Crypto.Hash import SHA256 >>> hash = SHA256.new() >>> hash.update('message') >>> hash.digest() '\xabS\n\x13\xe4Y\x14\x98+y\xf9\xb7\xe3\xfb\xa9\x94\xcf\xd1\xf3\xfb"\xf7\x1c\xea\x1a\xfb\xf0+F\x0cm\x1d'
字符集有关更多信息,请参阅此documentation
7rtdyuoh3#
加密密码不一定非常有用,因为您的代码必须包含解密的方法。通常,您要做的是将凭据与代码库分开存储,并让应用程序在运行时读取它们。例如 *:
您可能还希望考虑加密到数据库的连接,以便密码不会在网络传输过程中暴露。
3条答案
按热度按时间qfe3c7zg1#
您可以对字符串进行编码,但编码并不像注解中提到的Gord Thompson那样加密。任何对base64有一点了解的人都可以反转它。
字符集
解码它是一个
型
您可以使用哈希密码:
代码,
型
cgh8pdjw2#
我猜你正在寻找模块PyCrypto
您可以使用您想要的加密和存储在数据库中的加密文本,并在获取数据后,您可以再次解密它。
下面是PyCrypto的例子:
字符集
有关更多信息,请参阅此documentation
7rtdyuoh3#
加密密码不一定非常有用,因为您的代码必须包含解密的方法。通常,您要做的是将凭据与代码库分开存储,并让应用程序在运行时读取它们。例如 *:
您可能还希望考虑加密到数据库的连接,以便密码不会在网络传输过程中暴露。