这个C#的函数怎么改成c++的

hyz_cs 2014-06-04 02:34:02


public static String GetSmartWeatherKeyCode(String _publicKey, String _privateKey)
{
//使用SHA1的HMAC
HMAC hmac = HMACSHA1.Create();
Byte[] data = System.Text.Encoding.UTF8.GetBytes(_publicKey);
//密钥
Byte[] key = System.Text.Encoding.UTF8.GetBytes(_privateKey);
hmac.Key = key;

//对数据进行签名
var signedData = hmac.ComputeHash(data);
String keyCode = Convert.ToBase64String(signedData);
keyCode = System.Web.HttpUtility.UrlEncode(keyCode);
return keyCode;
}
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyz_cs 2014-06-06
  • 打赏
  • 举报
回复
用indy搞定了.. 简单说一下吧 首先用 TIdHMACSHA1 计算hmacsha1 然后用 TIdEncoderMIME 计算base64 最后用HTTPEncode得到最终的URL
宝龙哥 2014-06-05
  • 打赏
  • 举报
回复
C++目前的主要问题就是集成度不够,要什么没什么,有了的也可能不完整
宝龙哥 2014-06-05
  • 打赏
  • 举报
回复
C++目前的主要问题就是集成度不够,要什么没什么,有了的也可能不完整
hyz_cs 2014-06-05
  • 打赏
  • 举报
回复
引用 4 楼 ksrsoft 的回复:
你用什么版本的cb,有加密控件,明天给你说
cb2010, 有这种hash_hmac_sha1的吗?
缘中人 2014-06-05
  • 打赏
  • 举报
回复
你用什么版本的cb,有加密控件,明天给你说
hyz_cs 2014-06-05
  • 打赏
  • 举报
回复
引用 2 楼 ksrsoft 的回复:
c++没有现场的加密算法吧,需要第三方组件
http://download.csdn.net/download/yanzhibo/4963059 下载了这个源码,在cb中使用的问题 [ILINK32 Error] Error: Unresolved external 'CSHA1::Update(unsigned char *, unsigned long)' referenced from E:\201406\CB2010\WEATHER\DEBUG\HMAC_SHA1.OBJ csha1.cpp 中有这个函数,怎么还有个错误.
缘中人 2014-06-04
  • 打赏
  • 举报
回复
c++没有现场的加密算法吧,需要第三方组件
hyz_cs 2014-06-04
  • 打赏
  • 举报
回复
这是文档中的定义 key 的算法 key=base64_encode(hash_hmac('sha1',$public_key,$private_key,T RUE)); key 加密后通过 urlencode 对其编码后传参

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧