【问题标题】:Jasypt doesn't want to decrypt stringsJasypt 不想解密字符串
【发布时间】:2014-10-20 16:39:25
【问题描述】:

我正在用 Java 编写一个需要对字符串进行加密和解密的程序。我正在使用 Jasypt 的 BasicTextEnctyptor。这是一个复杂的应用程序 - 使用异步网络和类似的东西。加密在服务器和客户端之间。但每次我运行两者时,我最终都会得到一个org.jasypt.exceptions.EncryptionOperationNotPossibleException。由于这个应用程序的复杂性,我尝试制作一个简单的类:

import org.jasypt.util.text.BasicTextEncryptor;

public class test {
    public static void main(String[] args) {
        String text = "LEMONS";
        String key = "keykeykey";
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword(key);
        String encrypted = encryptor.encrypt(text);
        System.out.println(encrypted);
        encrypted = encryptor.decrypt(text);
        System.out.println(encrypted);
    }
}

这是它导致的异常的堆栈跟踪:

6rn3OyR9zsfmd4OfnskSEQ==
Exception in thread "main" org.jasypt.exceptions.EncryptionOperationNotPossibleException
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:918)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725)
at org.jasypt.util.text.BasicTextEncryptor.decrypt(BasicTextEncryptor.java:112)
at test.main(test.java:11)

那么...这里发生了什么?基本加密应该可以正常工作。我觉得如果解决了这个问题,那么主应用程序中的问题可以用同样的方式解决。

【问题讨论】:

  • 替换:encrypted = encryptor.decrypt(text); with : encrypted = encryptor.decrypt(encrypted);

标签: java encryption jasypt


【解决方案1】:
encrypted = encryptor.decrypt(text);

因为文本是你的明文,所以没有什么可以解密的……例外只是说……

【讨论】:

  • 虽然这并不能解决我更大的问题,但从技术上讲它是这个问题的答案。谢谢。
  • 如果我正在为该字段提取数据,我们如何检查值是否经过哈希处理?
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多