gpt4 book ai didi

java - Java 中的可重复加密(可能使用 Jasypt)

转载 作者:行者123 更新时间:2023-12-01 20:16:21 31 4
gpt4 key购买 nike

我想混淆(*)一些密码以将它们隐藏在Java源代码中。

发现jasypt我以为我事先加密了密码文本,然后在源代码中根据记住的种子+加密的密码进行解密。但是,加密过程似乎不可重现:当使用

生成加密密码文本时
BasicTextEncryptor bte = new BasicTextEncryptor();
bte.setPassword("something"); // the "seed"
String ep = bte.encrypt("mypasswordtext")

每次运行时,ep都会返回不同的加密密码:例如 Zx5RdBLxIB1sPxG7Os3/G4aqqfy59l8nv3-D3AZWJAybdqWac9FsjdLgMqkAS9vSghsD3wZwJAwjk9ghqwFLwqwgMqkwS9vS

如何使加密可重现,以便我可以使用种子加加密字符串来生成真实密码?

<小时/>

(*) 我使用“混淆”,因为我知道这根本不是隐藏密码的安全方法,但至少它可以帮助人们无法仅通过扫描来发现密码。 > 在源代码中,同时将其全部包含在源代码文件中。

最佳答案

每次执行加密时,BasicTextEncryptor 都会生成一个随机盐并将其包含在输出中,如下所示:http://www.jasypt.org/api/jasypt/1.9.0/org/jasypt/encryption/pbe/StandardPBEStringEncryptor.html#encrypt(java.lang.String) 。即使密文不相同,解密仍然应该有效。

如果您想每次都产生相同的结果,则必须使用非随机盐生成器直接设置和配置 StandardPBEStringEncryptor。

但是,正如您在帖子末尾提到的那样,执行这些操作都不是好习惯。如果您正在开发“现实世界”的应用程序,则应该完全避免将这些 secret 存储在源代码中。

关于java - Java 中的可重复加密(可能使用 Jasypt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45727434/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com