Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.
Versions
  • Madrid
  • London
  • Kingston
  • Jakarta
  • Istanbul
  • Helsinki
  • Geneva
  • Store
Close

Sample Java digest algorithm for encryption

Log in to subscribe to topics and get notified when content changes.

Sample Java digest algorithm for encryption

This Java algorithm illustrates creating a digest token from an HTTP header.

This sample assumes:
  • The web server supports Java
  • The hash computation method is SHA1
  • The secret key value is abc123
  • The unencrypted HTTP header name is user_name
Change the Java code to use another hash computation mechanism (such as MD5), change the secret key value, or HTTP header name.
import javax.crypto.Mac ; import javax.crypto.spec.SecretKeySpec ; import sun.misc.BASE64Encoder ; // public class DigestTest  { private static final String MAC_ALG  = "HmacSHA1" ; // default to something JDK 1.4 has String fKey  = "abc123" ; public byte [ ] getDigest ( String acct ) { try { byte [ ] bkey  = fKey. getBytes ( ) ; byte [ ] data  = acct. getBytes ( ) ;
           Mac mac  = null ; try {
               mac  = Mac. getInstance (MAC_ALG ) ;
               mac. init ( new SecretKeySpec (bkey, MAC_ALG ) ) ; } catch ( Exception e ) {
               e. printStackTrace ( ) ; } byte [ ] sig  = mac. doFinal (data ) ; String signature  = new String (sig ) ; System. out. println ( "value:" + acct ) ; System. out. println ( "digested value:  " + signature ) ; return sig ; } catch ( IllegalStateException e ) {
       	e. printStackTrace ( ) ; } return null ; } public static void main ( String [ ] args ) {
   	BASE64Encoder encoder  = new BASE64Encoder ( ) ;
   	DigestTest test  = new DigestTest ( ) ; String userName  = "user_name" ; System. out. println ( "base 64 digest username: " + encoder. encode (test. getDigest (userName ) ) ) ; } }
Feedback