Подпись кодирования Apex

#vb.net #cryptography #digital-signature #apex

#vb.net #криптография #цифровая подпись #apex

Вопрос:

Я пытаюсь переписать следующую функцию VB в Apex:

 Private Shared Function sign(ByVal data As String, ByVal secretKey As String) As String

    Dim encoder As New System.Text.UTF8Encoding
    Dim key() As Byte = encoder.GetBytes(secretKey)
    Dim dataAsBytes() As Byte = encoder.GetBytes(data)

    Dim myHMACSHA256 As New System.Security.Cryptography.HMACSHA256(key)
    Dim HashCode As Byte() = myHMACSHA256.ComputeHash(dataAsBytes)

    Return Convert.ToBase64String(HashCode)

End Function
  

кто-нибудь может мне помочь?

Ответ №1:

Вот как вы можете создать подпись:

  String policy = '{ "expiration":"'   expires   '",'     
    '"conditions":[';
    List<String> clauses = new List<String>{};
 for(List<String> clause : conditions){
    clauses.add(genCondition(clause));
 }
 String conditionsString = String.join(clauses,',');
 policy  = conditionsString;
 policy  = ']}';        
 policy = EncodingUtil.base64Encode(Blob.valueOf(policy));  


signature = EncodingUtil.base64Encode(Crypto.generateMac('hmacSHA1', Blob.valueOf(base64EncodedPolicy), Blob.valueOf(Secret)));