首页 > 其他分享 >使用openGauss jdbc 3.0测试国密SM3用户认证

使用openGauss jdbc 3.0测试国密SM3用户认证

时间:2024-04-15 11:46:49浏览次数:25  
标签:jdbc sm3 SM3 3.0 encryption openGauss password type

使用 openGauss jdbc 3.0 测试国密 SM3 用户认证
本文出处:https://www.modb.pro/db/393728

openGauss 现在支持四种用户认证方式,通过 postgresql.conf 文件中的参数 password_encryption_type 确定,认证方式与该参数的对应关系如下表所示:

认证方式 参数
md5 password_encryption_type=0
sha256+md5 password_encryption_type=1
sha256 password_encryption_type=2
sm3 password_encryption_type=3
配置 SM3 认证方式
在 postgresql.conf 文件中配置 password_encryption_type=3,并重启数据库使该参数生效。

openGauss=# show password_encryption_type; password_encryption_type

3
(1 row)
创建用户

openGauss=# create user user_sm3 password 'Admin@1234';
CREATE ROLE
检查数据库存储的密文

openGauss=# select rolname,rolpassword from pg_authid where rolname='user_sm3';
-[ RECORD 1 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rolname | user_sm3
rolpassword | sm35235899e0406d85e4e086db4db7025d53acddb10b86d9988d7b2a1bc250322365df5fcbffc508287f1ef3205a81f8d63f43b87b16235ce7c582a0b6fa226154d7d038a0a9c2bd85aed2a9273cdd55864a481e967b62c63579441c1b03f6c550becdfecefade

pg_hba.conf 文件中配置认证方式为 SM3

host all user_sm3 0/0 sm3

通过 gsql 进行测试可正常连接

[omm@mogdb ~]$ gsql -Uuser_sm3 -p3000 -h... postgres -r --password='Admin@1234'
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=>

使用 openGauss-jdbc 3.0 进行连接测试
需要先下载 bcprov-jdk15on 依赖包,下载链接如下: https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on 选择最新版本即可。

将 bcprov-jdk15on 和 opengauss-jdbc 3.0jar 包直接导入工程或使用 maven 方式

org.opengauss
opengauss-jdbc

org.bouncycastle
bcprov-jdk15on
1.70

使用下面的 java 代码进行测试

java
public static void main(String[] args) throws Exception{
Class.forName("org.opengauss.Driver");
Connection conn = DriverManager.getConnection("jdbc:opengauss://...:3000/postgres",
"user_sm3","Admin@1234");
String sql = " insert into t values(?)";
PreparedStatement ps = null;
try{
ps = conn.prepareStatement(sql);
ps.setInt(1, 100);
ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
conn.close();
}

运行结果测试正常

标签:jdbc,sm3,SM3,3.0,encryption,openGauss,password,type
From: https://www.cnblogs.com/helloopenGauss/p/18135605

相关文章

  • ABAP转换SM34 TOTAL
    *<SIGNATURE>---------------------------------------------------------------------------------------+*|StaticPublicMethodZCL_MDG_UTIL=>SM34_TABLE_TO_TOTAL*+----------------------------------------------------------------------------------......
  • 小端对齐+大端对齐进阶版本V3.0
    当涉及到多字节的数据类型(如uint16_t、uint32_t等)时,字节在内存中的存储顺序会影响到数据的解释方式。这个存储顺序可以分为两种:大端对齐(BigEndian)和小端对齐(LittleEndian)。大端对齐(BigEndian):在大端对齐中,数据的高字节(MostSignificantByte,MSB)存储在内存的低地址,而数据的低......
  • 解决wpscan运行报错Could not find 'nokogiri' (>= 1.11.4, < 1.13.0) among 125 tota
    报错内容:/usr/lib/ruby/vendor_ruby/rubygems/specification.rb:1404:in`rescueinblockinactivate_dependencies':Couldnotfind'nokogiri'(>=1.11.4,<1.13.0)among125totalgem(s)(Gem::MissingSpecError)Checkedin'GEM_PATH=/roo......
  • 宋红康JDBC课程学习记录2
    宋红康JDBC课程学习记录2第3章:使用PreparedStatement实现CRUD操作3.1操作和访问数据库数据库连接被用于向数据库服务器发送命令和SQL语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。在java.sql包中有3个接口分别定义了对数据库的调用的......
  • java代码将16进制字符串转换为图片,jdbc入库blob字段,解决ORA-01704,PLS-00172,ORA-06550,
    从Oracle导出SQL文件中的insert语句包含blob字段,语句HEXTORAW函数将16进制的字符串入库,由于字符串太长,insert失败下面的代码读取完整的insert语句,将HEXTORAW函数连同16进制的字符串替换为NULL,先将字段置空插入记录,然后使用PreparedStatement对图片文件读流更新入库importorg.......
  • jdbc结合druid连接池访问postgreSQL数据库
    jdbc结合druid连接池访问postgreSQL数据库连接mysql的话也是一个道理,就是把对应的依赖和数据库驱动换一下一.在pom.xml里面加上对应的依赖<!--druid数据源--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring......
  • Vue — Vue面试题:Vue3.0 特性
    CompositionAPI(组合式API):CompositionAPI允许开发者将逻辑按照功能或者相关性进行组织,而不是按照选项的不同部分(如data、methods、computed等)来分散代码。这种方式更灵活、更易于复用和维护,特别适用于编写大型复杂的组件。基于Proxy的响应式系统:Vue3中的响应式系统基于ES6......
  • java连接Oracle(JDBC)
    packagetext.coming;importjava.sql.*;publicclassdemo{publicstaticvoidmain(String[]args){Connectionct=null;Statementstatement=null;try{Class.forName("oracle.jdbc.driver.OracleDriver");......
  • dubbo3.0 服务导入导出原理
    不管是服务导出还是服务引入,都发生在应用启动过程中,比如:在启动类上加上@EnableDubbo时,该注解上有一个@DubboComponentScan注解,@DubboComponentScan注解Import了一个DubboComponentScanRegistrar,DubboComponentScanRegistrar中会调用DubboSpringInitializer.initialize......
  • JDBC驱动连接MogDB/opengauss
    JDBC驱动连接MogDB/opengauss一、环境说明[root@node1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@node1ext]#java-versionjavaversion"1.8.0_301"Java(TM)SERuntimeEnvironment(build1.8.0_301-b09)JavaHotSpot(TM)64-Bit......