2009-10-19 2 views
3

보고서 실행시 iReport에서 SHA1 또는 MD5 해시를 계산하는 방법은 무엇입니까? 데이터베이스 구동 필드 (문자열)에 대해 미리 계산 된 해시를 비교해야합니다.iReport에서 SHA1 또는 MD5 해시를 계산하십시오.

iReport 2.0.5 (Old)를 사용하면 보고서 엔진이 상용 응용 프로그램에 포함됩니다.

답변

5

몇 년 전에 iReport와 Jasper Reports를 사용했는데 세부 사항을 기억하지 못합니다.하지만 Java 코드를 평가할 수있는 방법을 기억할 수 있습니다. 당신이 몇 줄의 MD5를 계산할 수있는 기능을 사용 : java.math.BigInteger의, java.security.MessageDigest의 및 java.security.NoSuchAlgorithmException를 가져

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); 

필요를; 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(); 

확인 보고서 실행시 http://www.eakes.org/77/java-injection-in-jasper-reports/

+0

감사 평가 될 수있는 변수의 생성에 대한이 블로그 게시물! 나는 이것을 확실히 체크 할 것이다. –

+1

음. 메시지 다이제스트 및 예외 클래스에 대한 가져 오기를 가져 와서 해시를 계산할 수있었습니다. 결과 변수는 다음과 같습니다. http://pastebin.com/f5dabd0a9 이상한 점은 콘솔에 표현식이 두 번 실행된다는 것입니다. 따라서 두 번 인쇄됩니다. 다음 목표는이 Java 코드로 부울 값을 반환하는 것입니다. 아직 어떻게하는지 모르겠습니다. –

관련 문제