Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在iReport中计算SHA1或MD5哈希_Java_Md5_Sha1_Ireport - Fatal编程技术网

Java 在iReport中计算SHA1或MD5哈希

Java 在iReport中计算SHA1或MD5哈希,java,md5,sha1,ireport,Java,Md5,Sha1,Ireport,在报表执行时,如何计算iReport中的SHA1或MD5哈希?我需要将预先计算的哈希与数据库驱动的字段(字符串)进行比较 使用iReport 2.0.5(旧版)和报表引擎嵌入到商业应用程序中。几年前我使用了iReport和Jasper报表,我不记得详细信息,但我记得可以用某种方式对Java代码进行评估。使用该功能,您可以在几行中计算MD5: String encryptionAlgorithm = "MD5"; String valueToEncrypt = "StackOverflow"; M

在报表执行时,如何计算iReport中的SHA1或MD5哈希?我需要将预先计算的哈希与数据库驱动的字段(字符串)进行比较


使用iReport 2.0.5(旧版)和报表引擎嵌入到商业应用程序中。

几年前我使用了iReport和Jasper报表,我不记得详细信息,但我记得可以用某种方式对Java代码进行评估。使用该功能,您可以在几行中计算MD5:

String encryptionAlgorithm = "MD5";
String valueToEncrypt = "StackOverflow";
MessageDigest msgDgst = MessageDigest.getInstance(encryptionAlgorithm);
msgDgst.update(valueToEncrypt.getBytes(), 0, valueToEncrypt.length());
String md5 = new BigInteger(1, msgDgst.digest()).toString(16) ;
System.out.println(md5);
需要导入java.math.biginger、java.security.MessageDigest和java.security.NoSuchAlgorithmException

计算SHA1散列的步骤几乎相同:

String encryptionAlgorithm = "SHA-1";
String valueToEncrypt = "StackOverflow";
MessageDigest msgDgst = MessageDigest.getInstance(encryptionAlgorithm);
byte[] sha1hash = new byte[40];
msgDgst.update(valueToEncrypt.getBytes(), 0, valueToEncrypt.length());
sha1hash = md.digest();

查看这篇关于创建可在报告运行时评估的变量的博文

谢谢!我一定会查清楚的。我能够获得消息摘要和异常类的导入,并计算哈希。这是结果变量。奇怪的是,在控制台中,表达式运行了两次。这样打印两次。我的下一个目标是让这个java代码将布尔值返回给变量。还不知道怎么做。