`
litxuf
  • 浏览: 122400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DSA签名在java与.net平台的互联互通问题(2)

    博客分类:
  • java
阅读更多

 

//DSA JAVA平台签名转成.net可以认识的签名

public static byte[] changeDSAJava2net(byte[] Content) {

byte[] RByte = new byte[40];

// byte[] SByte = new byte[20];

// byte[] Content = DERStr.getBytes();

 

int IntRLength = Content[3];

int j = 0;

// 第一段是 20个字符

if (IntRLength == 20) {

for (int i = 0; i < 20; i++) {

RByte[i] = Content[4 + i];

}

j = 24;

} else if (IntRLength > 20) {

// 第五位数字是0

for (int i = 0; i < 20; i++) {

RByte[i] = Content[5 + i];

}

j = 25;

} else {

// IntRLength 19 NotEnough 1

int NotEnough = 20 - IntRLength;

for (int i = 0; i < NotEnough; i++) {

// 不足数据用0补齐

RByte[i] = 0;

}

for (int i = 0; i < IntRLength; i++) {

RByte[NotEnough + i] = Content[4 + i];

}

j = 24 - NotEnough;

}

 

int IntSLength = Content[j + 1];

if (IntSLength == 20) {

for (int i = 0; i < 20; i++) {

RByte[i + 20] = Content[j + 2 + i];

}

} else if (IntSLength > 20) {

for (int i = 0; i < 20; i++) {

RByte[i + 20] = Content[j + 3 + i];

}

} else {

int NotEnough = 20 - IntSLength;

for (int i = 0; i < NotEnough; i++) {

RByte[i + 20] = 0;

}

for (int i = 0; i < IntSLength; i++) {

RByte[NotEnough + i + 20] = Content[j + 2 + i];

}

}

return RByte;

}

 

网上关于DSA的签名的实现代码很多 在此不再赘述 有疑问可以去问问百度或google

再次感谢徐某人!

分享到:
评论

相关推荐

    DSA签名算法的Java实现

    这个文件可能包含了上述Java代码的实现,或者是用于演示如何在Java中与其他语言(如C或C++)交互进行DSA签名的示例。这通常涉及到序列化和反序列化密钥和签名,以及可能的跨语言的兼容性问题。 DSA签名算法的Java...

    DSA数字签名 DSA数字签名

    DSA数字签 DSA数字签DSA数字签名 DSA数字签名

    DSA签名算法的C#实现

    DSA(Digital Signature Algorithm)是一种基于离散对数问题的公钥密码学算法,常用于数字签名,以确保数据的完整性和发送者的身份。在C#中实现DSA签名算法,主要涉及以下几个关键步骤和知识点: 1. **密钥生成**:...

    DSA.rar_DSA数字签名_DSA算法_dsa_java dsa_数字签名

    总结起来,DSA数字签名在Java中的实现涉及了密钥对生成、签名生成与验证等步骤,这些步骤都是通过`java.security`包中的类和方法完成的。了解并掌握这些知识点,对于开发安全的网络应用程序至关重要。同时,通过阅读...

    .net DSA加密(C#读取OPENSSL生成的DSA的pem文件的秘钥)

    .NET框架中的DSA(Digital Signature Algorithm,数字签名算法)是一种基于离散对数问题的公钥加密算法,常用于数字签名和认证。在本资源中,我们关注的是如何使用C#来处理OpenSSL生成的PEM格式的DSA密钥。PEM...

    rsa-elgamal-dsa.rar_DSA算法_ELGAMAL_dsa_dsa签名算法_elgamal java

    在Java中,`java.security.Signature`类提供了DSA签名功能,通过`Signature.getInstance("DSA")`创建实例,然后分别调用`initSign`和`initVerify`进行签名和验证操作。 2. ELGamal加密算法: ELGamal是由 Taher ...

    DSA.zip_DSA C数字签名_DSA 签名_DSA签名_dsa_dsa 数字签名

    **DSA(Digital Signature Algorithm)**是一种基于离散对数问题的公钥密码体制,由美国国家标准与技术研究院(NIST)在1991年提出,主要用于数字签名,确保数据的完整性和来源的不可否认性。 **数字签名**是密码学...

    dsa.rar_DSA C数字签名_DSA签名_dsa_dsa 数字签名_数字签名DSA

    **DSA(Digital Signature Algorithm)是数字签名领域中一种广泛应用的算法,主要基于离散对数问题的难度。它由美国国家标准与技术研究所(NIST)在1991年提出,目的是为了提供一个公开可验证的安全签名算法。DSA...

    DSA_Java.zip_DSA java_algorithms_dsa

    标题 "DSA_Java.zip_DSA java_algorithms_dsa" 暗示了这个压缩包包含的是与Java编程语言相关的数字签名算法(Digital Signature Algorithm,简称DSA)实现。DSA是一种广泛使用的公钥密码学算法,主要用于数据签名和...

    dsa数字签名算法的验证及实现

    在本主题中,我们将深入探讨“dsa(Digital Signature Algorithm,数字签名算法)”的验证和实现,这是一个广泛应用于电子商务、软件发布和其他需要安全通信场景的技术。 DSA是由美国国家安全局(NSA)设计,并在...

    ASP.NET中数字签名的实现

    在ASP.NET中,数字签名是一种确保数据完整性和来源可靠性的技术,它对于网络安全至关重要。本文将深入探讨如何在ASP.NET中实现数字签名,以及涉及到的相关概念如哈希散列。 首先,我们来理解数字签名的基本原理。...

    数字签名实验.zip_DSA 签名_DSA签名_c 数字签名_zjz_实验数字签名

    DSA签名程序和DSA验证程序。 签名程序流程: a. 读入字符串(从屏幕或文本文件中),字符串内容应包含自己的学号或姓名; b. 计算该字符串的SHA-1值; c. 生成DSA密钥对(利用dsa_make_key); d. 利用dsa_export...

    DSA.zip_DSA C数字签名_DSA数字签名_DSA签名_c 数字签名_数字签名

    **DSA(Digital Signature Algorithm)**是一种基于离散对数问题的公钥密码体制,由美国国家标准与技术研究所(NIST)在1991年制定,主要用于数字签名,确保数据的完整性和来源的真实性。 **一、DSA签名原理** DSA...

    md5.zip_DSA C数字签名_DSA 签名_DSA实现_Stankiewicz_dsa 数字签名

    《深入理解DSA数字签名:C语言实现与SHA哈希算法》 数字签名是现代密码学中的重要组成部分,它在确保信息安全传输、防止篡改和伪造等方面发挥着关键作用。DSA(Digital Signature Algorithm)是由美国国家标准和...

    DSA数字签名例子

    在电子通信和互联网交易中,DSA数字签名被广泛用于确保数据的完整性和发送者的身份验证。 DSA的核心原理是利用非对称加密技术,即每个用户有一对密钥,一个是私钥,仅由用户自己保管,用于签名;另一个是公钥,可以...

    C#.NET 安全编程 实例 RSA DSA 对称 非对称 加密 解密 XML 数字签名

    在C#.NET编程环境中,安全性和加密技术是至关重要的,特别是在处理敏感数据和网络通信时。本主题将深入探讨RSA和DSA两种非对称加密算法,以及对称加密的概念,同时涉及XML数字签名的实现。 首先,让我们了解对称...

    dsa2.1_dsa_签名算法_

    DSA,全称为Digital Signature Algorithm(数字签名算法),是基于离散对数问题的非对称加密算法,主要用于数据签名,确保信息的完整性和发送者的身份验证。在信息安全领域,DSA被广泛应用于电子文档的签名、软件的...

    Java 数字签名和验证

    在Java中,我们可以使用内置的Java Cryptography Extension (JCE)库来实现RSA、DSA和ECC这三种不同的签名算法。下面将详细阐述这些概念以及如何在Java中实现它们。 首先,我们要理解什么是数字签名。数字签名并非...

    java AES,DES,3DES,RAS,DSA 加密算法实现

    Java的`java.security.Signature`类提供了DSA的实现,如`Signature.getInstance("SHA256withDSA")`用于生成或验证DSA签名。 在Java中实现这些加密算法时,通常需要进行以下步骤: 1. 导入相关包,如`javax.crypto`...

    BM算法+DES算法+DSA签名

    C++以其高效性和灵活性被选择用于实现BM算法和DES加密,而Java由于其跨平台的特性以及丰富的安全库,成为实现DSA签名的理想选择。在提供的压缩包文件中,可能包含了这三个算法的C++和Java源代码实现,这对于学习和...

Global site tag (gtag.js) - Google Analytics