V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
oreader996
V2EX  ›  问与答

问一个关于 Python 实现 sm2 非对称加密的问题

  •  
  •   oreader996 · 2023-08-18 15:09:52 +08:00 · 678 次点击
    这是一个创建于 461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在使用 python 做一个爬虫模拟登录某个网站。发现该网站模拟登录请求的报文是加密的,通过查看 js 发现该加密方式应该使用的是国密算法 sm2 ,用的包应该是sm-scrpto,也找到了公钥字符串。

    我只有两种思路

    • 第一种方式就是通过 PyExecJS 等方法加载 js 文件获取密文,只是原网站是经过混淆的。

    • 第二种就是我直接在 python 端通过gmssl 库实现加密,但是我发现 gmssl 实例化的时候需要同时传入私钥和公钥。

    现在问题是,我用 request 模拟请求的不知道使用哪种方式去生成密文,如果采用第二种办法,可不可以通过传入真公钥假私钥只实现加密就行,或者是说还有第三种更简单的方式生成密文。

    6 条回复    2023-08-28 21:26:28 +08:00
    julyclyde
        1
    julyclyde  
       2023-08-18 19:52:40 +08:00
    首先,不要用报文这个错误的术语
    youngbug
        2
    youngbug  
       2023-08-18 20:54:56 +08:00 via Android   ❤️ 1
    不用私钥,只知道公钥那个点就行了
    oreader996
        3
    oreader996  
    OP
       2023-08-28 21:07:53 +08:00
    @youngbug 是的,刚刚已测试已成功加密并请求,私钥随便填写就行。
    oreader996
        4
    oreader996  
    OP
       2023-08-28 21:13:27 +08:00
    愿闻其详,该怎样纠正说法?
    oreader996
        5
    oreader996  
    OP
       2023-08-28 21:13:47 +08:00
    @julyclyde 愿闻其详,该怎样纠正说法?
    julyclyde
        6
    julyclyde  
       2023-08-28 21:26:28 +08:00
    @oreader996 RFC 里写着呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5561 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 03:02 · PVG 11:02 · LAX 19:02 · JFK 22:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.