2011-07-22 22 views
1

私はS3と同じ方法でアクセスキーと秘密鍵を生成しようとしていますが、問題があります。Javaを使用してs3スタイルのアクセス/秘密鍵を生成する方法

私はこのbouncy castle exampleを見ていますが、このコードを実行していますが、2つのことはわかりません1)HMAC-SHA1を使用するs3と同じ鍵生成を使用するように設定する方法hereの概要と2)ユーザーのフレンドリーな公開鍵/秘密鍵の文字列を取得する方法。

私はJava暗号化とバウンシーキャッスルライブラリーの新人だと思っているかもしれませんが、私はJCEKeyGenerator.HMACSHA1をbcドキュメントで見つけましたが、その使用例は見つかりませんでした。どんな助けでも大歓迎です。

ありがとうございました。

答えて

3

あなたがAWSAccessKeyIdAWSSecretAccessKeyを作成するためにjavax.crypto.KeyGeneratorを利用するために必要があります:

javax.crypto.KeyGenerator generator = javax.crypto.KeyGenerator.getInstance("HMACSHA1"); 
generator.init(120); 
byte[] awsAccessKeyId = generator.generateKey().getEncoded(); 
generator.init(240); 
byte[] awsSecretAccessKey = generator.generateKey().getEncoded(); 

その後、あなたはbase64でエンコードするバイト(これはmail.jarのからMimeUtilityを使用しています)をお勧めします:

final ByteArrayOutputStream encoded = new ByteArrayOutputStream(); 
final OutputStream encoder = javax.mail.internet.MimeUtility.encode(encoded, "base64"); 
encoder.write(awsAccessKeyId); 
encoder.flush(); 
encoder.close(); 
String accessKeyId = new String(encoded.toByteArray(), encoding).replaceAll("[\\r\\n]", ""); 
+0

ありがとうございました。 – mirswith

関連する問題