package javasecurity;
import java.security.*;
import javax.crypto.*;
public class DigitalSignatureExample
{
public static void main(String[] args) throws Exception
{
// 检查输入参数,得到明文
if (args.length != 1)
{
System.err.println
("Usage: java DigitalSignature1Example text");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
// 得到MD5消息摘要对象并且计算明文摘要
MessageDigest messageDigest =
MessageDigest.getInstance("MD5");
System.out.println
("\n" + messageDigest.getProvider().getInfo());
messageDigest.update(plainText);
byte[] md = messageDigest.digest();
System.out.println("\nDigest: ");
System.out.println(new String(md, "UTF8"));
// 生成RSA密钥对
System.out.println("\nStart generating RSA key");
KeyPairGenerator keyGen=KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
System.out.println("Finish generating RSA key");
// 得到RSA cipher同时列出算法的提供人
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
System.out.println("\n" + cipher.getProvider().getInfo());
// 将信息加密并且利用RSA私钥进行签名
System.out.println("\nStart encryption");
cipher.init(Cipher.ENCRYPT_MODE, key.getPrivate());
byte[] cipherText = cipher.doFinal(md);
System.out.println("Finish encryption: ");
System.out.println(new String(cipherText, "UTF8"));
// 利用RSA公钥进行解密
System.out.println("\nStart decryption");
cipher.init(Cipher.DECRYPT_MODE, key.getPublic());
byte[] newMD = cipher.doFinal(cipherText);
System.out.println("Finish decryption: ");
System.out.println(new String(newMD, "UTF8"));
// 重新建立信息明文
System.out.println("\nStart signature verification");
messageDigest.reset();
messageDigest.update(plainText);
byte[] oldMD = messageDigest.digest();
// 检查签名前后数据是否相同
int len = newMD.length;
if (len > oldMD.length)
{
System.out.println("Signature failed, length error");
System.exit(1);
}
for (int i = 0; i < len; ++i)
{
if (oldMD[i] != newMD[i])
{
System.out.println("Signature failed, element error");
System.exit(1);
}
}
System.out.println("Signature verified");
}
}
分享到:
相关推荐
DES 算法加密算法解密算法 DES 算法概述 DES(Data Encryption Standard)是一种对称密钥块加密算法,由美国 IBM 公司的 W. Tuchman 和 C. Meyer 于 1971-1972 年研制成功。1973 年,美国国家标准局(NBS)公开...
DES(Data Encryption Standard)数据加密标准是一种经典的对称加密算法,由IBM在1970年代初开发,并在1977年由美国国家标准局(NIST)采纳为联邦信息处理标准(FIPS)。DES在密码学领域具有重要的历史地位,尽管它...
标准数据加密算法.pdf
网狐异或算法加密工具是一种专门用于数据加密的软件,其核心技术是基于异或(XOR)运算的加密策略。异或加密是一种简单的对称加密方法,它利用异或操作的性质来实现数据的混淆,从而达到保护信息安全的目的。下面...
### 传统数据加密算法的分析与研究 #### 引言 随着互联网的普及和技术的发展,数据安全变得尤为重要。数据加密技术作为信息安全领域的核心之一,旨在确保数据在存储和传输过程中的机密性。通过运用变换和置换等...
数据加密算法的研究与应用 数据加密算法的研究与应用 数据加密算法的研究与应用 数据加密算法的研究与应用
在实际操作中,经常采用混合加密模式:利用非对称加密算法交换对称加密算法的密钥,再利用对称加密算法加密实际数据,从而结合两种加密算法的优点。 总之,加密算法是信息安全领域的基石,合理选择和使用加密算法...
国际数据加密算法(International Data Encryption Algorithm,简称IDEA),是由瑞士联邦理工学院的Xuejia Lai和James Massey于1990年提出的一种高效、安全的对称加密算法。IDEA以其出色的加密强度和相对较低的计算...
3. **其他数据算法**: - **Base64、Quoted Printable、EBCDIC**:这些都是数据编码算法,用于将二进制数据转换为ASCII文本,以便在网络传输或存储时兼容性更好。 在.NET Framework中,这些加密和编码算法都在`...
在众多的数据加密技术中,国密算法作为中国的加密标准,近年来受到了广泛关注。本研究提出了一种基于国密算法的云数据加密方案,旨在提高云数据的安全性。 首先,需要明确“国密算法”这一概念。国密算法是指中国...
### 基于DES算法和RSA算法的数据加密方案:深入解析 #### 一、DES算法与RSA算法概览 在信息安全领域,数据加密是保护数据免受未经授权访问的关键技术之一。DES(Data Encryption Standard)算法和RSA算法是两种...
加密流程包括初始化、密钥生成、加密、传输、解密和数据处理等步骤。尽管A5算法在设计时考虑了有限的处理能力和资源限制,但随着技术的发展,其安全性受到了质疑,现在已被更先进的加密技术所替代。 RC4算法则是一...
标题 "C#加密数据库(利用算法加密)" 涉及的核心知识点主要集中在如何在C#编程环境下,使用特定的加密算法来保护存储在SQL Server 2005数据库中的敏感数据,尤其是用户密码。在数据库中,直接明文存储密码会带来极大...
本章主要探讨了数据加密的相关概念和技术,包括数据加密标准、公钥密码算法、密钥管理以及加密技术的应用。 首先,数据加密是通过加密钥匙和加密函数将明文转化为密文,以防止未经授权的访问和解读。一个完整的加密...
AESdemo这个压缩包文件很可能包含了一个示例程序,用于演示如何使用AES算法加密和解密任意长度的数据。这个程序可能会使用某种编程语言实现,比如Python的PyCryptodome库或者Java的Java Cryptography Extension(JCE...
7位加密算法是易语言中的一种基础加密技术,主要用于数据的保护和安全传输。在这个主题中,我们将深入探讨7位加密算法的原理、实现方式以及其在易语言中的应用。 7位加密算法,顾名思义,是基于7位二进制数字进行...
在QT中实现AES(Advanced Encryption Standard)加密算法,可以帮助开发者确保数据的安全性,防止未授权的访问和篡改。AES是目前国际上广泛采用的一种块密码标准,因其高效性和安全性而备受推崇。 AES加密算法基于...
RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它在信息安全领域有着广泛的应用,如数字签名、数据加密和安全网络通信。RSA的核心特点是:加密和解密使用的是...
在描述中提到的“使用ASP加密算法加密你的数据”指的是在ASP环境中运用特定的加密算法来保护数据的安全性。ASP是一种服务器端脚本环境,可以用来创建动态网页和处理来自用户的数据。加密则是通过数学算法将可读数据...
AES(Advanced Encryption Standard,高级加密标准)和DES(Data Encryption Standard,数据加密标准)都是常用的对称加密算法,广泛应用于数据加密和解密领域。 AES加密算法 AES是一种对称加密算法,使用128位、...