Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python客户端工具(应该在浏览器中工作)从pfx文件中提取值并对其签名_Python_Python 2.7_Openssl_Pycrypto_Brython - Fatal编程技术网

Python客户端工具(应该在浏览器中工作)从pfx文件中提取值并对其签名

Python客户端工具(应该在浏览器中工作)从pfx文件中提取值并对其签名,python,python-2.7,openssl,pycrypto,brython,Python,Python 2.7,Openssl,Pycrypto,Brython,客户端工具,用于从客户端加载的pfx文件中提取公共名称序列号和公钥等值,然后对公钥签名并发送到服务器 我已经完成了后端python代码,它将从OpenSSL.Crypto库导入模块 如何在客户端执行相同的操作?。。i、 e签名操作应在客户端完成 在谷歌上,我发现像布莱顿、斯库普特、皮贾姆斯这样的人在这方面很有帮助。。但是我一开始就很困惑。。有什么建议吗?所以,首先要做的事情是:在服务器端和客户端运行相同的代码是不常见的 第二件事:请注意,在客户端进行的任何身份验证(或“签名”)都不能被视为安全的

客户端工具,用于从客户端加载的pfx文件中提取公共名称序列号和公钥等值,然后对公钥签名并发送到服务器

我已经完成了后端python代码,它将从OpenSSL.Crypto库导入模块

如何在客户端执行相同的操作?。。i、 e签名操作应在客户端完成


在谷歌上,我发现像布莱顿、斯库普特、皮贾姆斯这样的人在这方面很有帮助。。但是我一开始就很困惑。。有什么建议吗?

所以,首先要做的事情是:在服务器端和客户端运行相同的代码是不常见的

第二件事:请注意,在客户端进行的任何身份验证(或“签名”)都不能被视为安全的。最多,客户端可以负责将签名与UI紧密耦合,以向用户提供动态反馈-但由于客户端发送到服务器的任何请求都可以很容易地通过脚本模拟,因此必须在服务器端为每个请求执行身份验证,例如,表示当前用户已正确身份验证的变量只能作为“True”发送,而不考虑实际已知的用户名和密码

第三件事:尽管如此,因为有这些框架用于使用Python或类似Python的语言客户端,所以在代码库中确实有一些模块可以同时用于客户端和服务器端。其中,我最熟悉的是Brython,它已经实现了很好的Python3.x兼容性,而且我确实有一个共享客户端和服务器端代码的项目

当然,重复使用的代码必须进行重构,以抽象任何I/O(比如获取用户输入,或从数据库获取值),因为这些在服务器端和客户端是根本不同的事情。尽管如此,一些核心逻辑仍然可以在双方重用

然而,第三方python模块,如Pycrypto,在客户端无法工作(您可能会编写一个类似xmlrpc/jsonrpc的调用,以便在服务器端使用它)- 尽管Python的hashlib现在还没有在Brython中实现,但该项目已经获得了一个势头,即为javascript中存在的至少相同的编解码器打开一个功能请求可以在几天内完成。 (bug/features请求可以在github.com/brython dev/brython上打开)

(顺便说一句,我刚刚发现,令我沮丧的是,目前还没有一种标准的方法来计算Javascript中没有第三方模块的任何散列,甚至md5,这只是强调了像Brython或coffescript这样的框架的实用性,它们可以以一种干净的方式提供一系列功能)