0

crypto クラスを使用して apex で HMACSHA256 API 署名を作成するのを手伝ってくれる人はいますか。対応する Java コードを以下に示します。

public static void main(String[] args) throws GeneralSecurityException, IOException {

    String secretKey = "secretKey";
    String salt = "0123456789";

    String generateHmacSHA256Signature = generateHmacSHA256Signature(salt, secretKey);
    System.out.println("Signature: " + generateHmacSHA256Signature);

    String urlEncodedSign = URLEncoder.encode(generateHmacSHA256Signature, "UTF-8");

    System.out.println("Url encoded value: " + urlEncodedSign);
}

public static String generateHmacSHA256Signature(String data, String key) throws GeneralSecurityException {
    byte[] hmacData = null;

    try {
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(secretKey);
        hmacData = mac.doFinal(data.getBytes("UTF-8"));
        return new Base64Encoder().encode(hmacData);
    } catch (UnsupportedEncodingException e) {
        throw new GeneralSecurityException(e);
    }
}

前もって感謝します

4

1 に答える 1

0

http://boards.developerforce.com/t5/Apex-Code-Development/How-to-create-HMACSHA256-api-signature/td-p/551055

私はそれがあなたのためにそれを行うと思いますか?

後世のためにここにコピー (リンクが切れた場合) AKK の回答: "Re: HMACSHA256 API 署名の作成方法 12-28-2012 02:58 AM

フォーマットされていないコードで申し訳ありませんが、実際にフォーマットする方法を調べていましたが、mozilla で何も見つかりませんでした。Chrome エディタからのログインが表示されました。

以下のコードを使用して署名を取得しました。これは誰かに役立つかもしれません:-

public void genrateSignature() {
    String salt = String.valueOf(Crypto.getRandomInteger());
    String secretKey = 'secret_key';
    String signature = generateHmacSHA256Signature(salt, secretKey);
    System.debug('Signature : '+signature);
}

private static String generateHmacSHA256Signature(String saltValue, String secretKeyValue) {
    String algorithmName = 'HmacSHA256';
    Blob hmacData = Crypto.generateMac(algorithmName, Blob.valueOf(saltValue), Blob.valueOf(secretKeyValue));
    return EncodingUtil.base64Encode(hmacData);
}

ありがとう"

于 2013-09-21T01:14:09.563 に答える