问题标签 [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 与弹簧自动装配一起使用?
我已经看到了一些没有自动接线的解决方案,但我试图让它与自动接线一起使用。自上周以来我一直在尝试这个,但没有找到适合我的解决方案,可能是我没有正确实施它,所以任何帮助都会很棒。
我有一个属性文件myprops.properties
:
在我的 servlet.xml 文件中我替换了
和
在我的 service.java 中,我自动连接这些值,如下所示:
事情是当我没有加密密码时这是有效的,即UserPassword=nonencriptedpassword
但是一旦我将其加密并使用 ENC() 我就会收到以下错误
这可能是一些我不知道或忽略的愚蠢简单的事情,但我已经尝试按照Jasypt wiki和网站上的教程以及教程xmx1024和 jayway 上的教程,我确定我找到了一个使用自动连线的但我好像再也找不到了。
仅供参考:我使用的是 spring 3.0.4、Spring Security 3.0.4 和 jasypt 1.9
任何帮助都是极好的
更新
我已将环境变量设置为APP_ENCRYPTION_PASSWORD
等于纯文本密码,并将属性文件中的密码设置为的返回值
encrypt input=plaintextpassword password=APP_ENCRYPTION_PASSWORD
我现在得到错误
密码加密是通过以下方式完成的
spring - Jasypt 与 Hibernate 4 和 spring 3.1 的集成
我在我的应用程序中使用Spring 3.1 + Hibernate 4.1。我希望使用Jasypt以加密形式存储一些字段(如密码) 。但是在集成中我面临以下异常:
为了将 spring+hibernate 与 Jasypt 集成,我遵循以下步骤:
在 lib 文件夹中添加了 jasypt-1.8.jar 。
在dispatcher-servlet(配置文件)中添加了以下内容
<bean id="hibernateStringEncryptor" class="org.jasypt.hibernate.encryptor.HibernatePBEStringEncryptor" lazy-init="false"> hibernateStringEncryptor jasypt</bean>
在Entity上放置以下代码:
@TypeDef( name="encryptedString", typeClass=EncryptedStringType.class, parameters= { @Parameter(name="encryptorRegisteredName", value="hibernateStringEncryptor") } )
但它没有得到预期的结果。请帮我解决这个异常。
问候,
阿伦·库马尔
java - 为什么这个带有 Salt 的 MD5 结果在结果字符串的末尾有“==”?
我有使用 jasypt(Java 简化加密)库的 java 代码:
你可以看到我使用了带盐的 MD5 算法。
控制台中的结果是:
我想知道为什么结果字符串末尾有“==”字符?只有当我使用 Salt 时它才存在。
spring - org.jasypt.exceptions.EncryptionOperationNotPossibleException
我将Jasypt-1.9.0与Spring 3.1和Hibernate 4.0.1一起使用。我的应用程序需要连接到数据库,其密码(root)以加密形式存储在应用程序的属性文件中。
我在网上查看并通过以下链接找到了方法:
我已经根据我的要求完成了以下步骤和配置:
- 在构建路径中添加了 jasypt-1.9.0和jasypt-hibernate4 -1.9.0。
- 在我的dispatcher-servlet文件中添加了以下内容:
- 使用Jasypt 1.9.0 的 CLI 工具,我生成了下面的密码(附加的 CLI 快照)
- 添加了一个新的环境变量作为APP_ENCRYPTION_PASSWORD,其值为root
- 在database.properties 文件中添加加密密码
现在,如果我运行我的应用程序,则会出现以下异常:
mysql - Spring3.1、Hibernate4 和 Jasypt1.90 的配置文件中的加密密码不适用于 MySQL 服务器 5
我已将 Spring3.1、Hibernate4 和 Jasypt1.90 的加密密码配置到 MySQL 服务器 5 的配置文件中,但它不起作用并给出以下错误:
让我描述一下,到目前为止我所做的一切:
Step-I-Jasypt-Spring-Hibernate Maven 依赖
applicationContext-resources.xml 中的 Step-II-Jasypt-Spring-Hibernate 配置:我在这里使用了两种方法,但都不起作用。
第一种方法:
}
第二种方法:
注意:我必须将 APP_ENCRYPTION_PASSWORD 系统属性设置为 pom.xml 以获取主密码:
Step-III- 我使用了 c3p0 连接池而不是 dbcp 池,但它也不起作用。
请建议我在这里缺少的任何东西。我做了很多尝试,但没有取得任何成功。
java - Jasypt 1.9:用感叹号加密密码
我正在使用 Jasypt 1.9,当我尝试用感叹号加密密码时,它失败了。没有感叹号就可以正常工作
例如:
Jasypt 声称它已修复在这里.. http://www.jasypt.org/changelogs/jasypt/ChangeLog.txt
笔记:
java - 带有 Jasypt 库的 BadPaddingException
我不确定这是一个错误还是我做错了。无论哪种情况,我都需要别人的帮助。
我们在 Web 应用程序中将 Jasypt 和 Spring 2.05 结合在一起,我们在其中加密了属性文件中的一些密码。这件事在 Web 应用程序上运行良好。我们甚至可以使用 BasicTextEncrypor.decrypt(method) 从主方法中解密密码。
但是,我们在执行 JUnit 测试用例时遇到了问题。一旦我们运行测试套件,我们就会得到以下堆栈跟踪。
我深入研究了 Jasypt 的源代码,才知道在幕后抛出了 javax.crypto.BadPaddingException。我不确定为什么直接从 main 方法进行相同的调用和通过 JUnit 框架执行相同的事情之间存在差异,其他一切(例如密码)都是相同的。
java - Jasypt 加密字符串无法在另一台机器上解密
我们的安全部门希望我们使用 256 位加密来加密 SSN、用户名等,因此我们决定使用 JASYPT,示例代码如下:
我们注意到的问题是,当我们的应用程序从本地计算机创建加密记录时,app-dev 服务器上的应用程序无法解密它,反之亦然,即使密钥相同。似乎 JASYPT 正在盐中添加一些特定于机器的信息(Mac 地址等)。
即使使用FixedStringSaltGenerator
或ZeroSaltGenerator
没有帮助。这给我们带来了一个问题,因为如果我们曾经将生产服务器迁移到另一台机器,或者使用产品数据刷新生产前数据,我们可能需要几百万年才能恢复信息。
安全部门希望我们使用众所周知的库,而不是自己制定解决方案。有人可以就这个问题说明一下我们如何生成可以使用 jasypt 256 位加密在不同机器上解密的加密字符串,或者当我们用产品数据刷新 pre-prod 数据库时,我们如何能够恢复名称等通过不同的服务器加密?
任何有用的见解将不胜感激。
java - 带有充气城堡的 SecurityException
我在 Mac OS 上,在我的 Mac 上执行软件更新后遇到此问题。
我尝试了这些建议
- 将 security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider 添加到 java.security
- 在 /Home/jre/lib/ext 下添加 bcprov-jdk15-140.jar
但这有点帮助。我尝试将 jdk6 更新为 jdk7 并做了同样的事情,并得到了unsigned jar的略有不同的错误
我已经用 jdk16-140.jar 试过这个,但结果相同。有人能想到任何其他选择来克服这个问题吗?谢谢你。
hibernate - 无法在 jasypt 加密列上使用命名查询获取实体
我有一个使用 jasypt 加密 ssn 字段的 Employee 实体。以下是一个模拟定义:
该实体包含两个用于获取员工的命名查询,一个带有名称,另一个带有 ssn。SSN 字段使用 jasypt 加密。该代码是一个模拟实现,因此我使用了以下基本配置:
employees1
我在列表中没有结果。但是,当我运行以下命名查询时,我可以在员工对象中看到解密的 ssn。
我无法理解我的代码中是否存在错误,或者休眠应该如何工作。在Integrating Jasypt with Hibernate 3.x or 4.x文档中,写道:
但是加密对您的 Hibernate 使用设置了限制:安全标准规定,对相同数据的两种不同加密操作不应返回相同的值(由于使用了随机盐)。因此,在持久化时设置为加密的任何字段都不能成为它们所属实体的搜索查询中的 WHERE 子句的一部分。
因此,这意味着无法对加密字段执行搜索操作。