技术栈不同,技能不同,特别是国内的MS系的技术栈资源更少,小众产品的API更是只提供py和java版本的。

缘起

因为修改一个登录问题,发现有个第三方认证系统,在.net的api里执行py脚本,实现登录签名,所以多看了它一眼,先用GPT转换后,再对比运行分析之:

  1. 看完源码,开始怀疑的是字符集的编码类型,验证它,结果相同。
    image-1723724558386
  2. 再以为是加密问题,验证它,结果还是相同。
    image-1723724707380
  3. 难不成是URL参数拼接问题 ,因为加密前的url参数里有timestamp参数,其它的参数如secretkey和user都是固定,手动执行,很难保证结果相同。但也只能硬上了,结果问题,对出的第一个不同却不是和timestamp一起打包加密参数,而是有中文值的参数,转义后的值一个大写,一个小写:
    image
    image-1723725248382

缘灭

image-1723725741488

好吧,c#的代码本来就是它生成的,但现在却又需要人为参与验证,它才再生成修正的正确代码。