首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的可重复加密(可能使用Jasypt)

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

Stack Overflow用户
提问于 2017-08-17 05:45:41
回答 1查看 517关注 0票数 0

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

发现茉莉花时,我认为我事先加密了密码文本,然后在源代码中从记住的种子+加密密码中解密。但是,加密过程似乎不是可重复的:当生成加密的密码文本时

代码语言:javascript
复制
BasicTextEncryptor bte = new BasicTextEncryptor();
bte.setPassword("something"); // the "seed"
String ep = bte.encrypt("mypasswordtext")  

每次运行ep时,我都会得到不同的加密密码:For example Zx5RdBLxIB1sPxG7Os3/G4aqqfy59l8nv3-D3AZWJAybdqWac9FsjdLgMqkAS9vSghsD3wZwJAwjk9ghqwFLwqwgMqkwS9vS

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

(*)我使用“模糊不清”,因为我知道这根本不是隐藏密码的安全方法,但至少它帮助人们不能通过对源代码进行锁定来识别密码,同时将所有密码保存在源代码文件中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 06:12:03

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

如果每次都想产生相同的结果,那么就必须直接设置和配置一个带有非随机盐生成器的StandardPBEStringEncryptor。

然而,正如你在帖子末尾提到的那样,做这两件事都不是很好的做法。如果您正在使用“真实世界”应用程序,则应该避免将这些秘密存储在源代码中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45727434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档