返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >RSA密钥--JAVA和C#的区别及联系
  • 351
分享到

RSA密钥--JAVA和C#的区别及联系

2024-04-02 19:04:59 351人浏览 薄情痞子
摘要

目录1、RSA语法介绍1.1 C#转JAVA1.2 JAVA转C#首先感谢:Http://www.codeproject.com/Articles/25487/Cryptograph

首先感谢:Http://www.codeproject.com/Articles/25487/Cryptographic-Interoperability-Keys的文章。

由于公司同时使用.netJAVA,而且各个服务集使用接口来进行通信,因此某些例如清算系统、收银台之类的安全性比较高的系统会使用RSA进行加密。因此会涉及到密钥的转换。所以大概看了下C#的秘钥跟JAVA的密钥区别。
RSA对于程序本身是没有区别的,其格式都是相同的。对于不同的程序来说,存储使用的语法(包装的类)会有所不同。
RSA语法和语法标准有很多,大的类型大概分为ASN.1PKCSX.509

1、RSA语法介绍

ASN.1、PKCS是最初的,也是最主要的RSA公钥和私钥的语法标准,被RSA Lab所维护。
ASN.1、PKCS#1都定义了公钥和私钥的类型——序列化的数字。

为了下一个层次的抽象(适当的包装),现在一般使用的组合是:PKCS#8的私钥,X.509的公钥 。

PKCS语法主要用于私钥,其内部标准目前有10种。目前JAVA普遍使用的是PKCS#8,用作私钥格式。
X.509语法主要用于公钥,广泛使用于WEB浏览器和SLL
3种语法标准的公私钥可以实现相互转化,其核心为ASN1语法中的整数值(modulusPublicExponentprivateExponent ),其余的数值都可以经过计算后得出。

.NET使用的是标准的RSA格式,然后将其中的数字base64编码后,生成XML进行存储。
java中使用的是PKCS#8,、X.509的公私钥语法,存储的都是相应的JAVA类自动生成的base64字符串
由于存储格式的区别,在相互转换、读取的时候,需要理解RSA相关的知识,才能正确使用类来转换。

1.1 C#转JAVA

C#中的公私钥使用XML字符串进行存储,读取时直接读入字符串即可。
由于C#使用的是标准的RSA格式,因此JAVA的RSAPublicKeySpecRSAPrivateKeySpec配置类的核心参数(modulusPublicExponentprivateExponent )都可以从对应XML中的节点值(Modulus-modulus Exponent-PublicExponent D-privateExponent base64解码后获取。然后将其传入JAVA配置类中,然后根据配置类生成相应的RSA公私钥。


 View Code

1.2 JAVA转C#

JAVA中的公私钥使用base64进行存储,解码成字节数组后,首先需要生成相应的配置对象(PKCS#8,、X.509 ),根据配置对象生成RSA公私钥。

私钥:

C#使用的是标准的RSA格式,PKCS#1语法中包含了标准RSA格式私钥中的所有整数值。配置对象需要生成PKCS#1语法的RSA对象(RSAPrivateCrTKEy),获取对象属性,自行构造私钥XML


 View Code

公钥:

公钥跟私钥生成步骤相同,配置对象生成标准的RSA对象(RSAPublicKey)。


 View Code

到此这篇关于RSA密钥--JAVA和C#的区别及联系的文章就介绍到这了,更多相关RSA密钥 JAVA C#内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: RSA密钥--JAVA和C#的区别及联系

本文链接: https://lsjlt.com/news/155236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • RSA密钥--JAVA和C#的区别及联系
    目录1、RSA语法介绍1.1 C#转JAVA1.2 JAVA转C#首先感谢:http://www.codeproject.com/Articles/25487/Cryptograph...
    99+
    2024-04-02
  • android与java的区别及联系
    从整体来讲,Java和Android的区别在于:Android程序是基于组件和配置的,而且Android开发以Java语言为开发工具,表面上看他们有点同宗不同门,但实际上区别十分大。Android是一个主流智能手机操作系统,Java是一种开...
    99+
    2016-11-14
    java入门 android java 区别 联系
  • 【JAVA】JAVA与C++的区别与联系
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言两方介绍C++JAVA 不同==|Java不支持指针、模板、指针重载、联合等|====|支持析构函数|====|条件编译和包含|...
    99+
    2023-08-16
    java c++ 开发语言
  • c语言和c++的区别和联系
    c语言和c++是计算机科学领域应用广泛的编程语言。虽然它们有着相似的基础,但它们在语言类型、语法功能和内存管理方面存在着显著差异。c语言是一种面向过程的语言,而c++是一种面向对象的语言...
    99+
    2024-03-14
    c语言 c++
  • java中volatile和synchronized的区别与联系
    java中volatile和synchronized的区别与联系这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两...
    99+
    2023-05-31
    volatile synchronized ava
  • C语言和C++有什么区别联系
    C语言和C++有什么区别联系?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。 C是一个结构化语言,它的重点在于bai算法和数据结构。C程序的设du计首要考虑zhi的是 如何通过一个过程,对输...
    99+
    2023-05-31
    c语言 c++ 区别联系
  • 解读Java和JavaScript区别与联系
    目录Java和JavaScript区别与联系Java 和 JavaScript 不同之处Java 和 JavaScript 相同之处javaSE--java和JavaScript比较...
    99+
    2023-02-22
    Java和JavaScript区别 Java和JavaScript联系 Java和JavaScript
  • C++数组和指针的区别与联系
    目录1 数组和指针的概念2 数组和指针的操作2.1 赋值2.2 存储2.3 大小2.4 初始化3 数组和指针的传参3.1 数组的传参3.2 指针的传参4 总结前言: 一直以来,有很多...
    99+
    2024-04-02
  • 前端和后端开发的区别及联系
    前端和后端开发是构建一个完整网络应用所必不可少的两个方面,它们之间有着明显的区别,但又密切联系在一起。本文将分析前端和后端开发的区别及联系。 首先,我们来看一下前端开发和后端开发的具体...
    99+
    2024-04-02
  • C语言和C++:区别与联系全解析
    c++ 语言和 c++ 语言的主要区别在于 c++ 具有动态类型、智能指针、对象模型、函数重载、多态性和异常处理,而 c 语言没有。虽然如此,它们共享相似的语法、编译过程和在系统级编程方...
    99+
    2024-04-04
    c++ c语言
  • Java和JavaScript区别与联系是什么
    本篇内容主要讲解“Java和JavaScript区别与联系是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java和JavaScript区别与联系是什么”吧!Java和JavaScript区...
    99+
    2023-07-05
  • Java中 SLF4J和Logback和Log4j和Logging的区别与联系
    目录前言张家村小张的设计正交性Log4j最后前言 Java帝国在诞生之初就提供了集合、线程、IO、网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了...
    99+
    2024-04-02
  • java中实例与对象的区别和联系
    对象是抽象的说法,你可以把它看作一个符合它自身定义的所有实例的代表,而实例则是对象的现实体现。你可以说一个实例是一个对象,但你不能说一个对象是一个实例。因为定义对象时只是把自身的规则和逻辑定义好,实例可以通过输入不同的数据使得自己和其他实例...
    99+
    2018-12-10
    java入门 java 实例 对象 区别 联系
  • Centos和Redhat的区别与联系
    CentOS的简介   CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是Linux操作系统的一个发行版本。   CentO...
    99+
    2022-06-05
    Centos Redhat
  • Oracle中User和Schema的区别和联系
    今天在阅读Oracle官方文档的时候,读到schema的基本概念,这就让我产生了一个疑问:user和schema两者之间到底有什么区别?为了更深层次的理解二者之间的区别和联系,以下是官方文档中关于us...
    99+
    2024-04-02
  • 协程和线程的区别和联系
    本篇内容介绍了“协程和线程的区别和联系”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!进程进程是什么进程是操作系统对一个正在运行的程序的一种抽...
    99+
    2023-06-15
  • SMTP 和 POP3 协议的区别和联系
    SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol 3)是两种常用的电子邮件协议,用于发送和接收电子邮件。虽然它们都涉及到电子邮件的传输,但在功能和使用方式上有一些区别...
    99+
    2023-08-21
    服务器 网络 tcp/ip
  • Java对象、NPM和Apache:三者之间的联系和区别。
    Java对象、NPM和Apache:三者之间的联系和区别 在软件开发中,Java对象、NPM和Apache是非常常见的三个概念。虽然它们看起来有些不同,但它们之间确实存在联系和区别。在本文中,我们将深入探讨这三个概念之间的联系和区别。 Ja...
    99+
    2023-08-18
    对象 npm apache
  • 【Java】JDK、JRE、JVM详细解读(区别和联系)
    【Java】JDK和JRE的区别和联系 文章目录 【Java】JDK和JRE的区别和联系1. 介绍2. 详细解析2.0 先说说安装2.1 JDK2.2 JRE2.3 JVM2.4 Java可以...
    99+
    2023-09-13
    jvm java 开发语言
  • 云服务器和数据库的区别和联系与区别
    云服务器和数据库都是用来存储和处理数据的系统,但它们的区别是很大的。云服务器是一种虚拟服务器,它的功能是让客户机或者用户可以连接到服务器进行数据访问。而数据库则是一个存储着数据的系统,它的作用是用来管理和维护数据,以便于在需要的时候可以从这...
    99+
    2023-10-26
    区别 服务器 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作