当前位置: 首页 > news >正文

有什么网站做热图网店运营与管理

有什么网站做热图,网店运营与管理,外国人做僾视频网站,福州有网站建设的公司排名背景:服务端使用Java开发的,接口需要客户端传一个RSA公钥,手机端使用Flutter开发的,然后就选择使用 pointycastle 生成密钥,很不巧,dart版本不像Java一样有个可以直接获取编码过的公钥信息的方法&#xff1…

背景:服务端使用Java开发的,接口需要客户端传一个RSA公钥,手机端使用Flutter开发的,然后就选择使用 pointycastle 生成密钥,很不巧,dart版本不像Java一样有个可以直接获取编码过的公钥信息的方法:publicKey.getEncoded() ,dart 版本的 RSAPublicKey 只有 modulus 和 publicExponent,需要自行编码。

大概研究了一下,数据是使用ASN1,于是看了下Java编码前的数据结构是什么样子的(当然,也可以看相关的技术文档,我一时半会儿没找到,也懒得找),项目需要添加下面的依赖:

<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk18on</artifactId><version>1.78.1</version>
</dependency>

使用下面的Java代码,打印出来,结构一目了然: 

import org.bouncycastle.asn1.*;import java.io.IOException;
import java.security.*;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;public class Main {public static void main(String[] args) throws NoSuchAlgorithmException {KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(2048);KeyPair keyPair = keyPairGenerator.generateKeyPair();RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();System.out.printf("publicKey Algorithm: %s, format: %s\n", publicKey.getAlgorithm(), publicKey.getFormat());System.out.println("PublicKey Info:");System.out.println("\tModulus: " + publicKey.getModulus());System.out.println("\tPublic Exponent: " + publicKey.getPublicExponent());parseASN1(publicKey.getEncoded(), 0);System.out.println();System.out.printf("privateKey Algorithm: %s, format: %s\n", privateKey.getAlgorithm(), privateKey.getFormat());System.out.println("PrivateKey Info:");System.out.println("\tModulus: " + privateKey.getModulus());System.out.println("\tPrivate Exponent: " + privateKey.getPrivateExponent());parseASN1(privateKey.getEncoded(), 0);}private static void parseASN1(byte[] data, int indent) {try (ASN1InputStream asn1InputStream = new ASN1InputStream(data)) {ASN1Primitive primitive;while ((primitive = asn1InputStream.readObject()) != null) {parseASN1Encodable(primitive, indent);}} catch (IOException e) {throw new RuntimeException(e);}}private static void parseASN1Encodable(ASN1Encodable primitive, int indent) {printIndent(indent);if (primitive instanceof ASN1Sequence) {System.out.println("ASN1Sequence:");((ASN1Sequence) primitive).forEach(e -> parseASN1Encodable(e, indent + 1));} else if (primitive instanceof ASN1BitString) {System.out.println("ASN1BitString");parseASN1(((ASN1BitString) primitive).getOctets(), indent + 1);} else if (primitive instanceof ASN1OctetString) {System.out.println("ASN1OctetString");parseASN1(((ASN1OctetString) primitive).getOctets(), indent + 1);} else if (primitive instanceof ASN1Integer) {ASN1Integer asn1Integer = (ASN1Integer) primitive;System.out.printf("ASN1Integer: %s\n", asn1Integer.getValue());} else if (primitive instanceof ASN1ObjectIdentifier) {ASN1ObjectIdentifier asn1ObjectIdentifier = (ASN1ObjectIdentifier) primitive;System.out.printf("OID: %s\n", asn1ObjectIdentifier.getId());} else if (primitive instanceof DERNull){System.out.println("DERNull");} else {System.out.println("primitive Class: " + primitive.getClass());System.out.println("primitive: " + primitive);}}private static void printIndent(int tabCount) {for (int i = 0; i < tabCount; i++) {System.out.print('\t');}}
}

dart版本对公钥进行编码的代码写在另一篇文章了:Flutter RSA公钥转PEM​​​​​​​ 

http://www.15wanjia.com/news/33072.html

相关文章:

  • 公司门户网站怎么做seoul怎么读
  • 怎么做网站自动采集数据库网络舆情监测中心
  • 微信公众号里的网站怎么做的网站源码交易平台
  • 做网站租什么服务器网络营销专业主要学什么
  • 基于php的网站开发汉中seo培训
  • 网站模版 下载工具石家庄网站建设
  • 青岛新公司网站建设推广培训公司排名
  • 重庆网站优化方式青岛网
  • 电视台网站策划书核心关键词如何优化
  • java做网站吗百度电脑版网页版入口
  • 网站怎么样做不违规百度合伙人官网app
  • 烟台网站排名推广软文模板
  • 电脑维修 做网站线上营销渠道
  • 创意字体设计网站关键词排名工具有哪些
  • 企业网站策划方案模板百度网盘官方
  • 网站建设全教程福州seo按天付费
  • 国外什么网站是做外贸网上推广赚钱项目
  • 河南国控建设集团网站重庆网站seo外包
  • 网站建设设计制模板建站价格
  • 网站用户后台是怎么做的广州seo报价
  • dw怎么做鲜花网站seo的作用
  • 国际加速器永久免费版惠州seo全网营销
  • 网站创建多少钱seo技术好的培训机构
  • 四川网站建设和优化搜索引擎快速优化排名
  • 免费软件有版权吗百度站长工具seo综合查询
  • 免费网站申请关键词搜索量全网查询
  • 公司网站域名做邮箱公司软文代写
  • 网站更换服务器需要重新备案吗淘宝关键词查询
  • 什么网站做任务的q币提升seo排名的方法
  • 网络营销自己做网站软件制作