GVKun编程网logo

如何在python中导入OpenSSL(如何在Python中导入库)

13

在这篇文章中,我们将带领您了解如何在python中导入OpenSSL的全貌,包括如何在Python中导入库的相关情况。同时,我们还将为您介绍有关iOS中,导入openssl静态库配置路径,自己创建.p

在这篇文章中,我们将带领您了解如何在python中导入OpenSSL的全貌,包括如何在Python中导入库的相关情况。同时,我们还将为您介绍有关iOS中,导入openssl静态库配置路径,自己创建.pch文件、解决openssl/rsa.h、pyopenssl - 下列有关openSSL的PHP代码,如果用Python实现?、python 安装 scrapy,openssl opensslv.h 错误的解决办法、python-2.7 – 如何在python中保存3D数组并在mathematica中导入它的知识,以帮助您更好地理解这个主题。

本文目录一览:

如何在python中导入OpenSSL(如何在Python中导入库)

如何在python中导入OpenSSL(如何在Python中导入库)

我正在尝试运行以下简单代码来检索SSL证书:

import ssl,socket

#print ssl.get_server_certificate(('www.google.com',443))
cert=ssl.get_server_certificate(('www.google.com',443))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,cert)
x509.get_subject().get_components()

但我收到错误消息:

Traceback (most recent call last):
  File "C:\Users\e\Desktop\Python\ssl\test.py",line 6,in <module>
    x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,cert)
NameError: name 'OpenSSL' is not defined

我知道我必须导入OpenSSL。但是我不知道怎么做?以及从哪里获得OpenSSL?我从https://pypi.python.org/pypi/pyOpenSSL下载了一个名为pyOpenSSL的模块,
其中包含两个文件夹:pyOpenSSL-0.15.1.dist-
info和OpenSSL。当我尝试添加导入OpenSSL或导入pyOpenSSL时,出现错误。您能否清楚说明,如何导入这些库或模块?他们应该放在哪里?如果不在我的代码文件的同一目录中?如何在导入语法中编写路径?请帮忙。

编辑: 当试图添加from OpenSSL import SSL代码时,我得到了:

    C:\Users\e\Desktop\Python\ssl>test.py
Traceback (most recent call last):
  File "C:\Users\e\Desktop\Python\ssl\test.py",line 2,in <module>
    from OpenSSL import SSL
  File "C:\Users\e\Desktop\Python\ssl\OpenSSL\__init__.py",line 8,in <module>
    from OpenSSL import rand,crypto,SSL
  File "C:\Users\e\Desktop\Python\ssl\OpenSSL\rand.py",line 9,in <module>
    from six import integer_types as _integer_types
ImportError: No module named six

iOS中,导入openssl静态库配置路径,自己创建.pch文件、解决openssl/rsa.h

iOS中,导入openssl静态库配置路径,自己创建.pch文件、解决openssl/rsa.h

至于openssl的库编译生成,我这边就不讲了,网上教程很多,同时openssl这种库,支付宝SDK就可以找到,你想自己编译一个也可以,网上下载也可以!今天只讲用法,解决问题!

废话不多说,直接上图,新建个工程!

将两个静态库导入进来!

将所需要的头文件拖进来!

这个时候突然出现nsobject,不见了,没有申明,也就是说这里需要包含<uikit/UIKit.h>和<UIFountion/Fountion.h>文件,这时候创建一个.pch文件把!我是这样做的

在pch文件中添加,我要全局共享的东西!

设置。pch的路径,这点很重要,一定要抓准路径!

这个时候,其他错误没有了,出现了找不到头文件的错误!也就是说openssl库我们没有编译对!

我们需要设置一下,头文件的路径!

注:官方文档说需要 对“Header Search Paths”增加头文件路径:$(SRCROOT)/项目名 称

照着做了还是出现 openssl rsa.h file not found ,后来百度了很多地方都没有找到能解决的方法。

后来突然回想起# include<>跟# include""的区别后,终于找到原因了。

比如 我把openssl这个文件导入到了这个工程目录下 :项目名称/公共类/工具&第三方/支付宝SDK/openssl  ,中间隔了三个文件夹,
那么在Header   Search Paths 的设置就得改为 $(SRCROOT)/项目名 称/公共类/工具&第三方/支付宝SDK,问题就解决了

再反过来看官方的demo,原来他们把openssl这个文件放到了项目根目录下,所以“Header Search Paths”只需要设置$(SRCROOT)/项目名称


成功了,可以使用openssl 的库了,


看完点个赞,点个关注再走,一点不给力

如果我的文档对您有帮助,麻烦关注一下我的公

众微信号,每天学一点,开发更轻松!




pyopenssl - 下列有关openSSL的PHP代码,如果用Python实现?

pyopenssl - 下列有关openSSL的PHP代码,如果用Python实现?

function getCertId($cert_path) {
    $pkcs12certdata = file_get_contents ( $cert_path );

    openssl_pkcs12_read ( $pkcs12certdata, $certs, SDK_SIGN_CERT_PWD );
    $x509data = $certs [''cert''];
    openssl_x509_read ( $x509data );
    $certdata = openssl_x509_parse ( $x509data );
    $cert_id = $certdata [''serialNumber''];
    return $cert_id;
}
登录后复制
登录后复制

我写了个python的版本,使用的是pyopenssl,如下:

''''''解析pfx格式的证书ID,这里针对的是签名证书''''''
def getCertIdWithPFX(cert_path):
    fp = open(cert_path, ''r'')
    if not fp:
        raise Exception(''open %s fail!!!'' % cert_path)
    pkcs12certdata = fp.read()

    ''''''先解析pkcs12格式''''''
    sdk_sign_cert_password = config[''sdk_sign_cert_password'']
    certs = OpenSSL.crypto.load_pkcs12(pkcs12certdata, sdk_sign_cert_password)

    ''''''然后解析x509格式''''''
    x509data = certs.get_certificate()
    print x509data
    cert_data = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, x509data)
    print ''-------------------'', cert_data
    return cert_data.get_serial_number()
登录后复制
登录后复制

问题主要出在x509data,我该如何才能得到x509data中的数据呢,Python中这是个对象。

回复内容:

function getCertId($cert_path) {
    $pkcs12certdata = file_get_contents ( $cert_path );

    openssl_pkcs12_read ( $pkcs12certdata, $certs, SDK_SIGN_CERT_PWD );
    $x509data = $certs [''cert''];
    openssl_x509_read ( $x509data );
    $certdata = openssl_x509_parse ( $x509data );
    $cert_id = $certdata [''serialNumber''];
    return $cert_id;
}
登录后复制
登录后复制

我写了个python的版本,使用的是pyopenssl,如下:

''''''解析pfx格式的证书ID,这里针对的是签名证书''''''
def getCertIdWithPFX(cert_path):
    fp = open(cert_path, ''r'')
    if not fp:
        raise Exception(''open %s fail!!!'' % cert_path)
    pkcs12certdata = fp.read()

    ''''''先解析pkcs12格式''''''
    sdk_sign_cert_password = config[''sdk_sign_cert_password'']
    certs = OpenSSL.crypto.load_pkcs12(pkcs12certdata, sdk_sign_cert_password)

    ''''''然后解析x509格式''''''
    x509data = certs.get_certificate()
    print x509data
    cert_data = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, x509data)
    print ''-------------------'', cert_data
    return cert_data.get_serial_number()
登录后复制
登录后复制

问题主要出在x509data,我该如何才能得到x509data中的数据呢,Python中这是个对象。

from OpenSSL.crypto import load_pkcs12, FILETYPE_PEM, PKCS12, dump_certificate, dump_privatekey

立即学习“PHP免费学习笔记(深入)”;

cert_pem = dump_certificate(FILETYPE_PEM, certs .get_certificate())
key_pem = dump_privatekey(FILETYPE_PEM, certs .get_privatekey())

python 安装 scrapy,openssl opensslv.h 错误的解决办法

python 安装 scrapy,openssl opensslv.h 错误的解决办法

在 ubuntu16.04 下安装 python2.7 Scrapy 报错,openssl/opensslv.h 未找到,解决方法如下:

sudo apt-get install libssl-dev

Centos 下,请使用下面这条命令

yum install openssl-devel

python-2.7 – 如何在python中保存3D数组并在mathematica中导入它

python-2.7 – 如何在python中保存3D数组并在mathematica中导入它

我想在 python上的.txt文件或.csv文件中保存一个3D二进制数组,并将其导入到mathematica中.

我用Google搜索,我找到了很多答案,我试试这个:

import numpy as np
a=np.zeros((2,3,4))
a[0,0]=10
cPickle.dump( a,open( "matrix.txt","wb" ) )

在mathematica中我使用了Import [“matrix.txt”,“Data”]而我没有得到我所期望的

IN[]:Import["matrix.txt","Data"]

  Out[]:{{"cnumpy.core.multiarray"},{"_reconstruct"},{"p1"},{"(cnumpy"},\
    {"ndarray"},{"p2"},{"(I0"},{"tS'b'"},{"tRp3"},{"(I1"},{"(I2"},\
    {"I3"},{"I4"},{"tcnumpy"},{"dtype"},{"p4"},{"(S'f8'"},{"I0"},\
    {"I1"},{"tRp5"},{"(I3"},{"S'<'"},{"NNNI-1"},{"I-1"},\
    {"tbI00"},\
    {"S'\\x00\\x00\\x00\\x00\\x00\\x00$@\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\\
    x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'"},{"tb."}}

解决方法

诀窍是将数组展平为2D数组:

import numpy as np
a=np.zeros((2,0]=10
b=a.reshape(1,24)

np.savetxt("/matrix.CSV",b,delimiter=',')

然后在导入后在Mathematica中将其转换为3D,我们可以使用:

file=Import["matrix.CSV","Data"]
 matrix=ArrayReshape[file,{2,4}]

我们今天的关于如何在python中导入OpenSSL如何在Python中导入库的分享就到这里,谢谢您的阅读,如果想了解更多关于iOS中,导入openssl静态库配置路径,自己创建.pch文件、解决openssl/rsa.h、pyopenssl - 下列有关openSSL的PHP代码,如果用Python实现?、python 安装 scrapy,openssl opensslv.h 错误的解决办法、python-2.7 – 如何在python中保存3D数组并在mathematica中导入它的相关信息,可以在本站进行搜索。

本文标签: