虚幻调用Sha1等加密函数
http请求要加签名,内容是时间戳和uri的加密 看了很久的SHA1库才发现虚幻自己是有HMAC加密接口的 两个加密函数如下 有可优化的部分请大佬评论指教 [ 下面注释掉的是错误写法 ]
`FString CosFileHelper::HashHmac(const FString& SignatureString, const FString& SecretKey)
{
TArray<uint8> SecretKeyBytes;
SecretKeyBytes.Append((uint8*)TCHAR_TO_UTF8(*SecretKey), SecretKey.Len());
TArray<uint8> SignatureBytes;
SignatureBytes.Append((uint8*)TCHAR_TO_UTF8(*SignatureString), SignatureString.Len());
uint8 OutHash[FSHA1::DigestSize];
FSHA1::HMACBuffer(SecretKeyBytes.GetData(), SecretKeyBytes.Num(), SignatureBytes.GetData(), SignatureBytes.Num(), OutHash);
FString Result = FString::FromHexBlob(OutHash, FSHA1::DigestSize);
UE_LOG(LogTemp, Log, TEXT("%s"), *Result);
return Result;
}
FString CosFileHelper::Sha1(const FString InputString)
{
// 将FString转换为UTF-8编码的字节数组
TArray<uint8> InputBytes;
InputBytes.Append((uint8*)TCHAR_TO_UTF8(*InputString), InputString.Len());
// 计算SHA-1哈希值
uint8 OutHash[FSHA1::DigestSize];
FSHA1::HashBuffer(InputBytes.GetData(), InputBytes.Num(), OutHash);
// 将哈希值转换为FString
FString Result = FString::FromHexBlob(OutHash, FSHA1::DigestSize);
return Result;
}
//FString CosFileHelper::Sha1(const FString string)
//{
// uint8* result = new uint8();
// int len = StringToBytes(string, result, 65535);
// TArray<uint8> Array(result, len);
// return Sha1(Array);
//}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步