Как создать подпись HIACSHA256 api в Salesforce 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);
    }
}

заранее спасибо

0
nl ja de

1 ответы

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

Думаю, это сделает это за вас?

Скопировано здесь для потомков (в случае, если ссылка умирает) Ответ AKK: Re: Как создать подпись HIACSHA256 api? 12-28-2012 02:58

Извините за неформатированный код, на самом деле я искал способ форматирования, но ничего не нашел в mozilla и при входе в систему через хром-редактор.

Я получил подпись правильно, используя код ниже, возможно, это помогает кому-то:

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);
}

Благодаря"

0
добавлено
RU.CRYPTOGRAPHY — Криптография, алгоритмы, шифрование.
RU.CRYPTOGRAPHY — Криптография, алгоритмы, шифрование.
133 участник(ов)

Группа про криптографию, аналитику, алгоритмы, шифры и ключи.