问题标签 [jasypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jasypt 加密不适用于 Maven 配置文件
我试图让 jasypt 解密(以前加密的)属性值,最终将用于登录数据库。除了我引入 Maven 配置文件时,解密工作正常。我有一组特定于环境的本地/开发/产品属性文件。
这是我的 spring3 配置的相关部分。这是代码示例中最关键的部分:这决定了解密的设置方式以及为示例虚拟 bean 设置的解密字符串。
在我的一个 maven pom 中,这里是我指定配置文件的地方。
我正在使用 jasypt 1.9.1 版:
我在 /src/main/resources 中有一个主数据库属性文件 (database.properties) 设置,它具有以下占位符属性:
然后这是我的本地属性文件,位于 /src/main/resources/properties/local/database.properties :
这是我的示例 spring bean 代码,只需读取为其设置的属性。如果一切正常,该值将被打印到解密后的标准输出。
如果我调整我的 spring 配置以读取驻留在主属性文件上的属性,该文件通常只包含每个属性环境覆盖的占位符,然后解密工作。但是尝试从本地属性文件中读取加密属性时,解密不起作用。我一直在尝试调整弹簧配置,希望这可能只是一个类路径问题,但这似乎也无济于事。
我是否需要覆盖 Spring 如何查看属性前缀和后缀,如果只是为了可能需要加密的属性?(如果我这样做,这似乎适用于所有属性,而不仅仅是可加密的属性,因为 Jasypt 的 EncryptablePropertyPlaceholderConfigurer 是 Spring 的 PropertyPlaceholderConfigurer 的直接替代品)。
如果我按照我的说明设置了两个属性文件,这是程序的输出:
what's my property being set??: ENC(RSuprdBgcpdheiWX0hJ45Q==)
如果我的主属性文件包含加密属性,这是程序的输出:
what's my property being set??: sa
我不确定问题是Spring还是Jayspt。我不认为这是马文。如果可能的话,我宁愿不放弃现在的 Maven 配置文件。
为清晰起见,运行时示例进行了编辑。
*更新* : 如果我使用 Jasypt Spring 配置方式,我可以验证该值是否正确解密
<encryption:encryptable-properties id="dbProps" encryptor="jvmConfigurationEncryptor" location="classpath:database.properties"/>
然后在我的测试 Bean 中,我可以连接一个成员以将属性分配给它:
这似乎有效。但我真的需要 PropertyOverride 工作,这样我才能正确地搞定数据库配置。
java - 在 Spring 配置文件中加密密码
我有一个 Spring bean,它使用用户名/密码作为其构造函数参数的一部分:
我可以使用 jasypt 仅从配置文件中加密这些参数吗?bean "org.apache.commons.httpclient.UsernamePasswordCredentials" 将使用纯文本值进行实例化,但对用户而言,它们将显示为加密的。
我可以使用这个答案使用核心java库代码:在配置文件中加密密码?并从 java 中手动创建 bean mysender,然后在实例化 org.apache.commons.httpclient.UsernamePasswordCredentials 之前删除字段
还是有一种我没有提到的尝试过的方法可以实现这个?
spring - 如何使用环境变量配置 EncryptablePropertyPlaceholderConfigurer (jasypt)
我正在配置 EncryptablePropertyPlaceholderConfigurer (JASYPT 1.8) 的 xml,它从 SPRING 扩展 PropertyPlaceholderConfigurer,我需要放置一个环境变量而不是我的属性文件的位置,如下所示,但它不起作用。任何人都知道我该如何配置它?
当我放置文件的真实路径时,一切正常。
java - 为什么在加密文本时使用 Jasypt 设置密码?
要加密我使用的密码(从http://www.jasypt.org/encrypting-texts.html修改):
为什么需要设置密码BasicTextEncryptor
?
我可能在这里不理解一些基本的东西,但这是否没有意义,尽管它不起作用:
java - 为什么两个相等的文本生成不同的加密文本
这节课 :
生成此输出:
为什么密文不同?解密的文本是相同的,那么由于每个加密的文本不同,如何解密密码?
我希望使用相同密码和相同加密的相同文本会生成相同的加密文本,但情况似乎并非如此?
grails - Jasypt:从外部文件读取配置
我正在使用grails Jasypt Encryption 插件来加密我在数据库中的数据。
如果我在 Config.groovy 文件中设置 jasypt 配置,例如:
然后一切正常。
但是,如果我按照jasypt 文档(Grails 中的外部配置文件)中提到的那样将 jasypt 配置移动到外部文件中,则不会访问这些配置。
如何访问jsypt外部配置文件?
注意:-使用 ubuntu
java - 命令行 Jasypt 客户端加密“无法操作”
我正在使用 Jasypt 将我们的数据库密码以非明文格式存储在我们的休眠配置文件中。
例如,而不是
我想要类似的东西
我正在使用 PBEWITHMD5ANDTRIPLEDES 算法。我正在阅读它,似乎这可能需要安装 JCE 或“管辖权政策”扩展。我的问题是,如果我在 PBE 算法列表中看到这些东西是否已经安装?
我运行了 listAlgorithms.bat 脚本:
但是当我尝试加密我的密码时,我收到一条非常无用的错误消息:
如果我使用 algorithm=PBEWITHMD5ANDDES 运行相同的脚本,它工作正常。“支持的算法”列表实际上是否意味着“如果启用它们将支持的算法”而不是“可以使用的算法”?
我正在使用 Java 版本:
c# - 在 .NET 中,如何解密在 Java 中使用 PBEWithMD5AndDES 加密的值?
我们正在将数据从旧版 Java 应用程序迁移到较新的 .NET 应用程序中。Java 应用程序有一个 MySQL 后端,而 .NET 应用程序有一个 SQL Server 后端。我们拥有两者的完整源代码和配置文件,但没有一个开发 Java 应用程序的开发人员仍在公司,我们不得不对一些逻辑进行逆向工程以迁移数据。在我们的测试中,我们的大部分数据都正确移动。但是有一列的加密值我们遇到了麻烦。
据我所知,Java 应用程序中没有显式调用任何方法来在访问列时对其进行加密或解密。相反,加密似乎是在用于访问数据(休眠)的 ORM 内部自动发生的。我找到了一个名为的 XML 文件/entities/TABLENAME.hbm.xml
,我认为它是 Hibernate 对该列的模型定义。XML文件里面的相关行如下:
请注意,类型是stringEncrypted
. 的定义stringEncrypted
似乎在 中/entities/global/User.hbm.xml
,如下所示:
然后stringEncrypter
设置似乎/webapp/resources/spring/CompanyName-encryption.xml
如下(当然是经过消毒的):
所以,我认为这告诉我的是,该列正在使用PBEWithMD5AndDES
-method 加密进行加密,使用密码PASSWORD
和SALTSALTSALTSALTSALTSALTSALTSALTSALT
. 那么,问题是如何解密 .NET 中的列值?
到目前为止,我最好的领导是Tom Hundley 发布的这个PKCSKeyGenerator 类。使用它,我在 .NET 中尝试了以下操作:
当我运行它时,我得到:
我环顾四周寻找其他解密方法,扫描 Java 代码以查找可能正在使用的任何其他代码,并修改 PKCSKeyGenerator 中的参数,但我没有取得任何进展。我似乎无法使这个描述起作用。你有什么建议吗?提前致谢。
java - 无法确定类型:org.jasypt.hibernate.type.EncryptedStringType
我尝试使用 jasypt 和 hibernate 加密数据库内容。我总是看到这个错误消息。我正在使用 maven、hibernate 4 和 jasypt 1.9.1。如果您需要更多详细信息,请告诉我。任何人都可以帮助我吗?
谢谢你们
我的 User.java 文件中的代码:
休眠.cfg.xml:
jasyptHibernateTypes.hbm.xml:
和 applicationContext.xml:
java - 在 Objective C 中具有等效 SHA1 的 StandardStringDigester
我有一个 Java 编写的服务器,它在将密码插入数据库之前执行此代码以消化密码:
我还有一个用 Objective C 编写的 iOS 应用程序,它与该服务器通信,在我的代码的某些部分中,我需要检查输入的密码是否与存储的密码匹配。鉴于这不是登录功能,我不愿意将密码发送到服务器并让它进行验证,所以我需要一个等效的方法来消化 Objective C 中的密码。我做了一些研究并想出了此代码不会生成等效字符串供我与服务器提供的字符串进行比较: