The following Java code sample shows how to calculate a Signature Version 2. This sample has code for creating the canonical string, for base64 encoding, and for HMAC encoding for generating the signature. package com.amazon.associates.sample; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.security.InvalidKeyException; import java.s