`

Cryptography

阅读更多

    A signature provides two security services, authentication and integrity. A signature gives you assurance that a message has not been tampered with and that it originated from a certain person. As you'll recall from Chapter 2, a signature is a message digest that is encrypted with the signer's private key. Only the signer's public key can decrypt the signature, which provides authentication. If the message digest of the message matches the decrypted message digest from the signature, then integrity is also assured.

Signatures do not provide confidentiality. A signature accompanies a plaintext message. Anyone can intercept and read the message. Signatures are useful for distributing software and documentation because they foil forgery.

http://oreilly.com/catalog/javacrypt/chapter/ch06.html

 

import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.SignatureException;

public class Test {

	public static void main(String args[]) {
		try {
			// 1. Get the bytes in the Message.

			String strMessage = " Hello World !";
			byte[] bMessage = strMessage.getBytes();

			// 2. Get the PrivateKey and the PublicKey.

			KeyPair keyPair = KeyPairGenerator.getInstance("DSA")
					.generateKeyPair();

			PrivateKey privateKey = keyPair.getPrivate();
			PublicKey publicKey = keyPair.getPublic();

			// Incorrect Public Key

			KeyPair keyPairIncorrect = KeyPairGenerator.getInstance("DSA")
					.generateKeyPair();
			PublicKey publicKeyIncorrect = keyPairIncorrect.getPublic();

			// 3. Encrypt the Data.

			Signature signature = Signature.getInstance("DSA");

			signature.initSign(privateKey);
			signature.update(bMessage);

			// 4. Get the Signature, by signing the message.

			byte[] bSignature = signature.sign();

			// 5. Decrypt the Signature with the Public Key and get the Message
			// Digest.

			Signature signaturePublic = Signature.getInstance("DSA");

			// 6. Authentication

			signaturePublic.initVerify(publicKey);
			signaturePublic.update(bMessage);

			// 6. Check if the Signatures Match.

			boolean b = signaturePublic.verify(bSignature);

			if (b) {
				System.out.println(" The Signature is Good " + b);
			} else {
				System.out.println(" The Signature is Bad " + b);
			}
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (SignatureException e) {
			e.printStackTrace();
		} catch (InvalidKeyException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}
 
分享到:
评论

相关推荐

    python27离线安装cryptography库资源

    Cryptography库是一个强大的安全加密库,提供了各种密码学算法和协议,如哈希函数、对称加密、非对称加密以及数字签名等。对于运行Python 2.7的离线环境来说,安装这个库可能具有挑战性,因为通常我们会依赖于`pip`...

    python38离线安装cryptography库资源

    Cryptography库是Python中的一个核心组件,它提供了强大的加密和安全功能,使得开发者可以构建安全的应用程序。在离线环境下安装Python库可能会遇到挑战,但通过正确的方法,即使是Cryptography这样的库也能顺利安装...

    Real-World Cryptography

    Real-World Cryptography Real-World Cryptography是一本关于密码学的书籍,由David Wong撰写。密码学是一门广泛应用于信息安全领域的学科,旨在保护信息的机密性、完整性和认证性。该书籍旨在为读者提供实用的密码...

    cryptography-1.9.tar.gz

    《深入解析cryptography-1.9:Python加密编程的核心库》 在当今信息化社会,数据安全与隐私保护显得尤为重要,而加密技术则是保障信息安全的重要手段。在Python编程领域,cryptography是一个广泛使用的加密库,提供...

    python加密解密库cryptography使用openSSL生成的密匙加密解密

    Python中的cryptography库是一个强大的加密库,它提供了各种加密算法和功能,包括使用OpenSSL生成的密钥进行加密和解密。OpenSSL是一个开源的工具集,广泛用于生成和管理加密密钥,证书等。 首先,我们需要理解密钥...

    PyPI 官网下载 | cryptography-0.5.tar.gz

    **PyPI 官网下载 | cryptography-0.5.tar.gz** `cryptography-0.5.tar.gz` 是一个从Python的官方包管理平台PyPI(Python Package Index)下载的压缩包,它包含了`cryptography`库的0.5版本。这个库是用于Python的...

    Java Cryptography Extension (JCE)

    Java Cryptography Extension (JCE) 是Java平台的一个重要组件,主要负责提供强大的加密算法和安全服务,用于开发安全的应用程序。在Java 8中,JCE扮演着核心角色,允许开发者执行加密操作,如数据加密、解密、数字...

    PyPI 官网下载 | cryptography-2.6.1-cp37-cp37m-win_amd64.whl

    **PyPI 官网下载 | cryptography-2.6.1-cp37-cp37m-win_amd64.whl** 在Python编程环境中,`PyPI`(Python Package Index)是官方的软件仓库,提供了丰富的第三方库供开发者使用。`cryptography`库是一个重要的安全...

    Introduction to Modern Cryptography

    《Introduction to Modern Cryptography》一书提供了现代密码学的rigorous yet accessible treatment。以下是书中的一些关键知识点: 私钥密码学 私钥密码学是指使用同一个密钥进行加密和解密的密码学。书中详细...

    cryptography-36.0.1-cp36-abi3-win_amd64.whl

    《Python中的Cryptography库:36.0.1版本解析》 在Python的开发领域,安全性和加密技术是至关重要的部分。Cryptography库是Python中一个强大的加密工具,提供了多种安全算法,包括对称加密、非对称加密、哈希函数...

    PyPI 官网下载 | cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl

    《PyPI官网下载的cryptography库详解》 在Python编程领域,PyPI(Python Package Index)是广大开发者获取和分享Python库的重要平台。本篇文章将深入解析标题为"PyPI 官网下载 | cryptography-3.4.8-cp36-abi3-...

    Python库 | cryptography-3.0-cp35-cp35m-win_amd64.whl

    **Python库 | cryptography-3.0-cp35-cp35m-win_amd64.whl** 在Python编程环境中,库是扩展功能的关键组成部分,它们提供了预编写的功能,使得开发者能够快速有效地实现各种任务。`cryptography`库是Python中一个...

    Cryptography - Wikipedia.pdf

    Cryptography or cryptology is the practice and study of techniques for secure communication in the presence of third parties called adversaries. More generally, cryptography is about constructing and...

    cryptography-1.5.2.tar.gz

    《cryptography-1.5.2.tar.gz:Python加密库与Scrapy框架的结合》 在信息技术领域,安全性和隐私保护是至关重要的议题。在这个背景下,`cryptography`库应运而生,它是一个用于Python的强大的加密和密码学处理库。`...

    Beginning Cryptography With Java 带源码

    Beginning Cryptography with Java While cryptography can still be a controversial topic in the programming community, Java has weathered that storm and provides a rich set of APIs that allow you, the ...

    An Introduction to Number Theory with Cryptography

    在介绍中提到的电子书《An Introduction to Number Theory with Cryptography》第二版,是一本经典著作,它探讨了数论的基本原理,并展示了这些原理是如何在现代密码学中得到应用的。 从给出的内容来看,此电子书...

    Python库 | cryptography-2.4.1-cp34-abi3-manylinux1_i686.whl

    《Python库cryptography-2.4.1:深入解析与应用》 在Python的世界里,cryptography库是一个不可或缺的安全工具,它提供了高级别的加密、哈希、编码和身份验证功能,使得开发者能够安全地处理敏感数据。这个资源,...

    Python库 | cryptography-36.0.0-cp36-abi3-win_amd64.whl

    **Python库 | cryptography-36.0.0-cp36-abi3-win_amd64.whl** 本文将深入探讨Python中一个重要的安全库——`cryptography`,特别是其版本36.0.0。这个库是Python开发语言中的核心组件,用于处理加密、解密、数字...

Global site tag (gtag.js) - Google Analytics