Android – Create SHA1 Hash

I’ve been toying with Urbanesia’s OAuth provider API calls in Android these few hours regretting why it is so complicated in Java compared to PHP hehehe. Since OAuth’s requirement to generate a signature is using HMAC SHA1 to sign the whole POST & GET requests, I had to find a way to do it in Android’s Java.

So I scour Google to look for answers but sadly the results is surprisingly scarce. I wanted to make a standardize OAuth client for Urbanesia’s API but the standard libraries provided by the Android SDK is not what I’ve expected. For this to work, will need to download Apache Commons Codec Library here. So without further ado, here are the codes.

	private String sha1(String s, String keyString) throws 
		UnsupportedEncodingException, NoSuchAlgorithmException, 
			InvalidKeyException {
 
		SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), "HmacSHA1");
		Mac mac = Mac.getInstance("HmacSHA1");
		mac.init(key);
 
		byte[] bytes = mac.doFinal(s.getBytes("UTF-8"));
 
		return new String( Base64.encodeBase64(bytes) );
	}

Discussions

comments

Tags: , , , , , ,

Leave a Reply


photo of Batista Batista R Harahap [email protected]
Jl. Bango II/29C, Pondok Labu
Cilandak , DKI Jakarta , 12450 Indonesia
62817847023

This hCard created with the hCard creator.