Windows下python,psycopg2使用sm3连接HGDB

这篇具有很好参考价值的文章主要介绍了Windows下python,psycopg2使用sm3连接HGDB。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:N/A
版本:4.5
文档用途
本文介绍在HGDB使用sm3认证时,python使用psycopg2连接HGDB的方法。

详细信息
Python连接HGDB可以使用psycopg2、Django,Django是依赖psycopg2的,底层用的都是libpq,pip安装的psycopg2自带libpq。因此在一般情况下pip安装psycopg2后可以直接连接HGDB。在一些情况下HGDB需要使用sm3密码认证方式,此时使用psycopg2自带的libpq是无法连接HGDB的,报错:“authentication method 13 not supported”;可以按照以下方式处理。

Linux下psycopg2连接HGDB查阅文章:【python应用系统访问瀚高库(APP);ID:018380901】。

Windows参考以下几个方法:

方法一:更改数据库认证方式

条件允许的情况下,将HGDB的认证方式由sm3改为md5;一定确认好是否可以修改,修改时必须仔细操作。

方法二:自己编译psycopg2

1)由于pip安装的psycopg2自带libpq,因此使用“pip install --no-binary :all: psycopg2”安装,使之不自带libpq,安装完毕后,使用HGDB提供的libpq动态库。

2)将附件中的hgdb文件夹放在任意位置(路径建议只包含中文和数字),并配置环境变量,如:

Windows下python,psycopg2使用sm3连接HGDB,HighGo DB之扩展语言,windows,python,开发语言

cmd中验证pg_config可以访问到,如:

 C:\Users\Highgo>pg_config

    BINDIR = C:/Users/Highgo/highgo/bin

    DOCDIR = C:/Users/Highgo/highgo/doc

    HTMLDIR = C:/Users/Highgo/highgo/doc

    INCLUDEDIR = C:/Users/Highgo/highgo/include

    PKGINCLUDEDIR = C:/Users/Highgo/highgo/include

    INCLUDEDIR-SERVER = C:/Users/Highgo/highgo/include/server

    LIBDIR = C:/Users/Highgo/highgo/lib

    PKGLIBDIR = C:/Users/Highgo/highgo/lib

    LOCALEDIR = C:/Users/Highgo/highgo/share/locale

    MANDIR = C:/Users/Highgo/highgo/man

    SHAREDIR = C:/Users/Highgo/highgo/share

    SYSCONFDIR = C:/Users/Highgo/highgo/etc

    PGXS = C:/Users/Highgo/highgo/lib/pgxs/src/makefiles/pgxs.mk

    CONFIGURE = --enable-thread-safety --enable-nls --with-ldap --enable-FDE --enable-license --with-openssl --with-ossp-uuid --with-libxml --with-libxslt --with-perl

    VERSION = PostgreSQL 12.3

3)安装Microsoft C++ Build Tools工具,用于源码构建psycopg2。vs_BuildTools下载地址:https://download.visualstudio.microsoft.com/download/pr/67cb4c13-1e6d-4bf5-97ed-93636beebd7d/bbd9e99e837140cc7838ec63d0609c5e63ff43001cfa1e558b48db235f015237/vs_BuildTools.exe;选择需要的组件,如下:

Windows下python,psycopg2使用sm3连接HGDB,HighGo DB之扩展语言,windows,python,开发语言

安装过程较长,所占空间比较大。

4)卸载已安装的psycopg2;

5)编译构建psycopg2;

C:\Users\Highgo>pip install --no-binary :all: psycopg2

Collecting psycopg2

  Using cached psycopg2-2.9.7.tar.gz (383 kB)

Skipping wheel build for psycopg2, due to binaries being disabled for it.

Installing collected packages: psycopg2

   Running setup.py install for psycopg2 ... done

Successfully installed psycopg2-2.9.7

6)将附件hgdb中的lib和bin下的文件全部复制到python安装目录下的$PYTHON_HOME\Lib\site-packages\psycopg2下,如:

1691658583833.png

7)重新打开cmd,测试python连接数据库,python脚本如下:

import psycopg2

conn = psycopg2.connect(

    host="192.168.17.75",

    port="5867",

    database="highgo",

    user="sysdba",

    password="password"

)

cur = conn.cursor()



cur.execute("SELECT * FROM tbl_sm3")

rows = cur.fetchall()

for row in rows:

    print(row)



cur.execute("INSERT INTO tbl_sm3 (c1, c2) VALUES (%s, %s)", ("1", "2"))

conn.commit()

cur.close()

conn.close()

8)测试:

C:\Users\Highgo>cd C:\Users\Highgo\Python

C:\Users\Highgo\Python>python testDB.py

(1, '2')

(1, '2')

(1, '2')

(1, '2')

以上实现了sm3认证连接。

9)常见报错

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u200e’ in position 13: ordinal not in range(128)

解决:chcp 65001文章来源地址https://www.toymoban.com/news/detail-709161.html

到了这里,关于Windows下python,psycopg2使用sm3连接HGDB的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 国密算法SM2、SM3的使用

    1. SM2是非对称加密算法         它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。 2.SM3是一种密码杂凑

    2024年02月06日
    浏览(47)
  • Python实现国家商用密码算法sm2/sm3/sm4/sm9(国密)

    2010 年开始,我国国家密码管理局就已经开始陆续发布了一系列国产加密算法,这其中就包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖冲之加密算法)等,SM 代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。SM1 和 SM7 的算法不公开,其余算法都已成为 ISO/IEC

    2024年02月15日
    浏览(48)
  • vue中使用国密算法SM2、SM3、SM4

    gm-crypto相关文档:https://gitcode.net/mirrors/byte-fe/gm-crypto?utm_source=csdn_github_accelerator vue3+element ui例子:https://gitee.com/huanglgln/vue-sys-manage-el  vue3+view ui例子:https://gitee.com/huanglgln/vue-sys-manage  vue3+Ant Design Vue ui例子:https://gitee.com/huanglgln/vue-sys-manage-adv 

    2024年02月15日
    浏览(54)
  • 前端国密加解密使用方法SM2、SM3、SM4

       国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。      不多废话直接上干货 项目中 可能存在

    2023年04月09日
    浏览(51)
  • vue普通加密以及国密SM2、SM3、sm4的使用

    sm-crypto:https://www.npmjs.com/package/sm-crypto 1. SM2是非对称加密算法 它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号

    2023年04月09日
    浏览(44)
  • 使用 Java Bouncy Castle实现国密算法SM4、SM3以及SM2的加密

    国密算法的实现借助了Java库函数 Bouncy Castle,加密库安装使用教程请参考链接 SM4,又称为商密算法,是一种分组密码算法,于2012年由中国密码技术研究中心(中国密码学会成员)发布,目前已成为我国国家密码算法,并在多个领域得到了广泛的应用。SM4算法采用了32轮迭代结

    2024年02月16日
    浏览(67)
  • 国密SM2/SM3算法

    分类 1、SM1是一种分组加密算法 对称加密算法中的分组加密算法,其分组长度、秘钥长度都是128bit,算法安全保密强度跟 AES 相当,但是算法不公开,仅以IP核的形式存在于芯片中,需要通过加密芯片的接口进行调用。 采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙

    2024年02月05日
    浏览(65)
  • SM3和SM4密钥

    国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,目前主要使用公开的 SM2 、 SM3 、 SM4 三类算法,分别是 非对称算法 、 哈希算法 和 对称算法 。 SM3算法 :SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码

    2024年02月12日
    浏览(34)
  • SM3密码杂凑算法

    SM3密码杂凑算法用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。 1.1.1 消息(message) 任意有限长度的比特串。本文文中的消息作为杂凑算法的输入数据。 1.1.2 杂凑值 (hash value) 杂凑算法作用于消息后输

    2024年02月12日
    浏览(41)
  • 国密SM3杂凑算法

    在了解SM3算法之前,我们有必要了解一下单向散列函数。 单向散列函数 (one-way hash function)有很多名字:压缩函数、收缩函数、 消息摘要 、指纹、密码校验和、信息完整性检验(Message Integrity Check,MIC)、操作检验码(Manipulation Detection Code,MDC)。不管你怎么叫,它都是现

    2023年04月18日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包