import java.io.UnsupportedEncodingException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.wicket.util.crypt.Base64UrlSafe;
public
class
test {
public
static
void main(String[] args) {
String key =
"f85b8b30f73eb2bf5d8063a9224b5e90"
;
String toHash =
"GET"
+
"\n"
+
"Thu, 09 Aug 2012 13:33:46 +0000"
+
"\n"
+
"/ApiChannel/Report.m"
;
String res = hmac_sha1(toHash, key);
String signature;
try
{
signature =
new
String(Base64UrlSafe.encodeBase64(res.getBytes()),
"UTF-8"
);
signature = appendEqualSign(signature);
System.out.
print
(signature);
}
catch
(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public
static
String hmac_sha1(String value, String key) {
try
{
byte[] keyBytes = key.getBytes();
SecretKeySpec signingKey =
new
SecretKeySpec(keyBytes,
"HmacSHA1"
);
Mac mac = Mac.getInstance(
"HmacSHA1"
);
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(value.getBytes());
String hexBytes = byte2hex(rawHmac);
return
hexBytes;
}
catch
(Exception e) {
throw
new
RuntimeException(e);
}
}
private
static
String byte2hex(
final
byte[] b){
String hs=
""
;
String stmp=
""
;
for
(int n=0; n<b.length n stmp=
"(java.lang.Integer.toHexString(b[n]"
if
hs=
'hs+"0"+stmp;'
else
return
private
static
string appendequalsign s int len=
"s.length();"
appendnum=
"8"
for
><br>iefreer<br><br>
</b.length>