X509Certificate2类怎样导入一个公钥字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了X509Certificate2类怎样导入一个公钥字符串相关的知识,希望对你有一定的参考价值。
参考技术A 使用X509Certificate2.GetPublicKeyString()难度比较大。它格式用的是DER Encoding of ASN.1 Types。
比如3082010A0282010100D93E8921F06B5A2E9...0203010001
30:表示SEQUENCE类型
82010A:表示SEQUENCE长度为010A(其中82超过80,表示后面有2个字节的长度信息)
02:表示整数类型
820101:表示整数长度为0101(十进制为257)
00D93E89...:该整数就是modulus,00用来表示正整数,扣除00后还有256个字节,因此modulus为256个字节
最后是Exponent
0203010001: 02表示整数,03长度为3,010001就是Exponent
既然A单位可以得到GetPublicKeyString,建议A单位转为提交
X509Certificate2.PublicKey.Key.ToXmlString(),给出的xml类似:
<RSAKeyValue>
<Modulus>2T6J...Yvy3PTw==</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
该xml直接给出了Modulus和Exponent,并可以直接被RSACryptoServiceProvider导入。
如果注意观察,其中Exponent的AQAB就是010001这3个字节的Base64编码,而Modulus的2T6J...就是D93E89...的Base64编码。
支付宝电脑网站支付demo导入idea运行
支付宝支持沙盒模拟真实的支付环境,方便开发者学习与调试,
下面是使用支付宝沙盒环境来模拟运行支付宝web端支付的demo过程
创建支付宝沙盒账号
点击进入支付宝沙箱地址
支付宝沙盒中默认创建了一个应用
生成应用公钥
这里借助支付宝的工具生成应用公钥私钥 下载地址
下载完成后,打开工具,设置好秘钥长度和格式后点击生成秘钥
设置应用公钥,并获取支付宝公钥
复制生成的应用公钥,回到沙箱环境,点击设置
加密模式选择公钥,将应用公钥复制到下方
保存设置后会生成支付宝公钥,保留支付宝公钥会在项目中使用到
下载demo运行
下载地址
将demo导入到idea中运行
生成web.xml文件
如下图所示操作
点击选择我们的项目
将/WebContent/WEB-INF/lib目录下的jar包添加到项目中
配置tomcat
运行项目遇到的坑
解决方法
配置参数
在AlipayConfig.java文件中配置如下参数
启动效果
————————————————
版权声明:本文为CSDN博主「露天窗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lutianchuang/java/article/details/105994610
前言
官方示例Demo的运行环境为Eclipse,本次主要针对IDEA中导入遇到的一些问题
本地环境:IDEA + Tomcat8.5
1、错误一
Error:(1, 1) java: 非法字符: ‘ufeff‘
Error:(1, 10) java: 需要class, interface或enum
请参考这篇文章:https://www.cnblogs.com/niceyoo/p/12199287.html
2、错误二
org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [4.0]。
将使用默认版本。
错误原因:当前 Tomcat8.5 不支持 Web4.0 版本,可以尝试降低 Web 版本,或者是提高 Tomcat 版本。
以降低 Web 为例,找到 web.xml 修改 version,具体如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
3、错误三
org.apache.jasper.servlet.TldScanner.scanJars
至少有一个JAR被扫描用于TLD但尚未包含TLD。
为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。
在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
指定扫描路径:支付 Demo 这里为 WebContent
在弹出来的路径中选中当前项目的 WebContent
支付宝沙箱环境显示支付存在钓鱼风险
小四是个程序员 2020-06-04 14:20:50 726 收藏
分类专栏: 支付宝支付
版权
今天用沙箱环境测试支付宝的网站支付功能,结果给我提示存在钓鱼风险,给我整蒙逼了,然后通过搜索发现这个问题关闭掉你登录沙箱环境的网页就行了,我直接把浏览器所有打开的网页全部关掉,重新打开重新访问,结果就正常访问了,不知道能不能解决你的问题。
————————————————
版权声明:本文为CSDN博主「小四是个程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42322648/java/article/details/106545770
以上是关于X509Certificate2类怎样导入一个公钥字符串的主要内容,如果未能解决你的问题,请参考以下文章
将私钥与 .net 中的 X509Certificate2 类关联
使用私钥将 X509Certificate2 导出到字节数组