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