当前位置: 首页 > 知识库问答 >
问题:

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

庄文栋
2023-03-14

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

发现jasypt,我想我事先加密了密码文本,然后在源代码中从记住的种子+加密密码中解密。但是,加密过程似乎不是可复制的:当使用

BasicTextEncryptor bte = new BasicTextEncryptor();
bte.setPassword("something"); // the "seed"
String ep = bte.encrypt("mypasswordtext")  

每次运行EP时,我都会返回不同的加密密码:例如ZX5RDBLXIB1SPXG7OS3/G4AQQFY59L8NV3-D3AZWJAYBDQWAC9FSJDLGMQKAS9VSGHSD3WZWJAWJK9GHQWFLWWGMQKWS9VS

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

(*)我使用“混淆”,因为我知道这根本不是一种隐藏密码的安全方法,但至少它可以帮助人们在将密码全部包含在源代码文件中的情况下,仅仅看着源代码就不能发现密码。

共有1个答案

倪炎彬
2023-03-14

每次执行加密时,BasicTextEncryptor都会生成一个随机salt,并将其包含在输出中,您可以在这里看到:http://www.jasypt.org/api/jasypt/1.9.0/org/jasypt/encryption/pbe/standardpbestringencryptor.html#encrypt(java.lang.string)。即使密文不相同,解密仍应有效。

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

然而,正如您在文章末尾提到的那样,做这两件事都不是一个好的做法。如果您正在处理一个“真实世界”的应用程序,那么您应该完全避免在源代码中存储这些秘密。

 类似资料:
  • 本文向大家介绍java 中HashCode重复的可能性,包括了java 中HashCode重复的可能性的使用技巧和注意事项,需要的朋友参考一下 java 中HashCode重复的可能性 今天有同事提议用String的hashcode得到int类型作为主键。其实hashcode重复的可能性超大,下面是java的缺省算法:   但是什么情况下会重复?下面是测试代码 在A-z范围内有特殊字符,从结果看,

  • 我对Java知之甚少。请帮忙

  • 我试图将不可复制类型的(STL-)容器打包到std::可选,例如: 但是编译器(GCC 7.2)抱怨 错误:使用已删除的函数“MyClass::MyClass(const MyClass 并呈现出深刻的“来自……”堆栈进入类型_traits(以及更多),它检查std::是否可以在std::列表上构建。我怀疑编译器在那里发现容器(示例中的std::list)是可复制可构造的,但没有检查容器的值类型是

  • 本文向大家介绍在 Typescript 中使用可被复用的 Vue Mixin功能,包括了在 Typescript 中使用可被复用的 Vue Mixin功能的使用技巧和注意事项,需要的朋友参考一下 转到用 Typescript 写 Vue 应用以后,经过一轮工具链和依赖的洗礼,总算蹒跚地能走起来了,不过有一个很常用的功能 mixin,似乎还没有官方的解决方案。 既想享受 mixin 的灵活和方便,又

  • 问题内容: 我正在制作一个需要基于Java的AES加密和基于JavaScript的解密的应用程序。我正在使用以下代码作为基本形式进行加密。 我试图用来解密的JavaScript是 但是JavaScript解密无法正常工作。我是新手,有人可以告诉我一种无需更改Java代码块即可解决的方法吗? 我尝试使用Base-64解码文本,如下所示: 但还是不好 我尝试了以下建议的解决方案来解决可能的填充问题,但