ConsoleApp1支付签名验签示例
支付系统的签名和验签其实不复杂,关键就是搞清楚公钥私钥怎么配合。在 C#里,用.NET 自带的加密类这些挺顺手的。ConsoleApp1这个小项目就挺适合上手的,结构清晰,代码也不绕。
签名这块,项目里用到了RSACryptoServiceProvider
,配合私钥对交易数据做哈希签名。你只要把商户的关键信息拼好,比如订单号、金额啥的,一哈希一签名就完事儿了,生成的签名发给百度平台。
验签呢,逻辑差不多,就是换成了用公钥来解签。平台收到签名后自己也算一遍,看跟你发的一不一样。一致就信息没被动过,交易可以继续。
这类项目里有几个坑你得留心:私钥千万别暴露,建议配合 KeyVault 一类的服务管理;还有就是记得用HTTPS传输,别让中间人有可乘之机;加密算法要跟上节奏,比如 RSA 密钥别太短,2048 起步。
项目用法也挺直白,改改路径,把你的私钥公钥放进去,稍微熟悉下Encoding
和HashAlgorithmName
的用法,快就能跑起来。
如果你是做支付接入的,或者刚好在搞百度那套支付系统,这个项目拿来练手和参考都挺不错。想多了解相关算法,也可以顺手看看下面这些资源:
哦对了,.NET 的签名验签也不是只有一种写法,想更灵活点也可以看看RSA.Create()
配合ImportParameters
的方式,兼容性更好。
下载地址
用户评论