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

JAVA加密签名JCA

 
阅读更多
/**
 * JCAJava加密框架):DigestSignatureKeyCertAlogorithm, 不论是DigestSignatureKeyCert,都要使用到算法Algorithm*
 *
 1MessageDigest:对消息进行hash算法生成固定长度消息摘要(digest)。由一个单向Hash加密函数对消息进行作用而产生
 消息摘要服务其实就是使用hash算法将一段消息(可以是字符串、文件内容、html等)进行计算生成的一个byte[]。常用加密算法MD5SHASHA-1其实都是hash算法。
 消息摘要有两个基本属性:两个不同的报文难以生成相同的摘要,难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要(不可逆)
消息摘要算法包括MD(Message Digest,消息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)MAC(Message AuthenticationCode,消息认证码算法)3大系列
2Signature:数字签名算法是"非对称加密算法""消息摘要算法"的结合体。
 是信息发送者(就是只有信息的发送者才能产生的别人无法伪造的一段数字串)将用其私钥对明文信息的特征数据(或称消息摘要)进行 RSA 算法操作生成Sign+明文信息一起发送给收件人,
 作用:以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。
 当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
3KeyPairGenerator:根据指定的非对称算法生成配对的公钥、私钥。
4KeyGenerator 根据指定的对称算法生成秘钥
5KeyFactory:根据Key说明(KeySpec)生成公钥或者私钥。
6KeyStorekeystore是一个keys的数据库。Keystore中的私钥会有一个相关联的证书链,《证书用于鉴定对应的公钥》。一个keystore也包含其它的信任的实体。 一个KeyStore是一个keycert的库,里面存储了PrivateKey, Aliases, Certs.
 7SecretKeySpec 秘钥描述规格说明书
8Padding    数据长度:AESDESECB或者CBC模式下,要加密的数据必须是分组长度的整数倍,如果不是那么就需要填充(pad)。
    密钥长度:密钥长度是固定的。AES有三种:128192256bit
    pad的方式有很多种:PKCS7Padding:用十六进制0x07来填充7;Public Key Cryptography Standard
填充方式:用等于填充字节数量的值作为填充值进行填充。
9SecureRandom:用于生成随机数或者伪随机数。
*/
/**
 * 通信明文加密传输API”常用的流程:
* 1.先用对称加密秘钥明文文件进行加密(对称算法加密速度快,明文文件比较大);
* 2.非对称publicKey”对称加密秘钥进行加密;(非对称算法加密速度慢,对称秘钥文件小)
* 3.非对称PrivateKey”对称加密秘钥进行解密;
 * 4.对称加密秘钥明文文件进行解密。
*/
/**
 * 通信API数据安全验证常用的做法:
* 1.先用RSA生成公钥私钥对,私钥保留,公钥分发
* 2.RSA私钥+消息摘要算法(eg:MD5WithRSA)生成Sign
 * 3.Sign+明文发送给接受者(明文需要加密可参考上)
* 4.接受者对SignRSA公钥解密生成原消息摘要A”,用明文生成新的消息摘要B”
 * 5.AB进行对比
*/
/**
 * 公司APP相关API验证方式
* 1.对每个APP生成appKey+appSecret,必将这两个数据发送给API调用方。
* 2.我方用appKey + appSecret + APIData进行MD5,并截取8-24位作为signA
 * 3.明文+signA,一起传输
* 4.调用发用同样的方式,生成signB,验证接口正确性
*
 */
分享到:
评论

相关推荐

    Java加密和数字签名编程快速入门

    Java加密和数字签名编程是Java开发中的重要领域,主要用于数据安全和身份验证。在这个快速入门教程中,我们将探讨Java如何实现这些功能,并提供基础实践。 一、Java加密 1. 密码学基础:了解对称加密(如AES)和非...

    Java加密和数字签名编程 Java

    Java加密和数字签名编程是信息安全领域中的重要技术,它们在软件开发中扮演着不可或缺的角色,尤其是在保护数据安全、验证信息完整性和确保身份真实性方面。在Java中,这些功能主要通过Java Cryptography ...

    Java加密算法(源代码)

    4. **Java加密API(JCA)与Java加密扩展(JCE)**: Java提供了一套完整的加密API,即Java Cryptography Architecture (JCA),它定义了用于加密、解密、签名和消息认证码的操作。JCE(Java Cryptography Extension...

    JAVA加密和解密的艺术(第二版).zip

    《JAVA加密和解密的艺术(第二版)》是一本深入探讨Java平台上的加密与解密技术的专业书籍。这本书不仅提供了理论知识,还包含了丰富的实践示例,帮助读者理解和掌握加密技术在实际应用中的运用。其内容涵盖了从基本...

    java加密和数字签名

    Java加密和数字签名是网络安全领域中的重要概念,用于保护数据的完整性和确保信息发送者的身份。在Java中,这些功能主要由Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 提供。本篇...

    JAVA 加密算法(很好的算法,经典摘要)

    Java加密算法是信息安全领域中的重要组成部分,用于保护数据的隐私性和完整性。在Java平台上,有多种内置的加密库,如Java Cryptography Extension (JCE) 和 Java Cryptography Architecture (JCA),它们为开发者...

    pc1-128-java.zip_Java加密_java 加密_pc1_pc1 java

    Java加密主要依赖于Java Cryptography Extension (JCE)框架,它提供了一系列的接口和类用于加密、解密、数字签名以及密钥管理等。JCE包括两个主要部分:Java Cryptography Architecture (JCA) 和 Java Cryptography ...

    Java加密与解密的艺术.pdf 下载

    标题和描述均提到了“Java加密与解密的艺术”,这暗示了文档主要聚焦于Java语言在数据加密和解密领域的应用。尽管提供的“部分内容”并未给出具体的技术细节,但我们可以根据这一主题,深入探讨Java中加密与解密的...

    Java加密与解密的艺术PDF和源码

    Java加密主要涉及到两个关键库:Java Cryptography Extension (JCE) 和 Java Cryptography Architecture (JCA)。JCE是Java平台的标准扩展,用于高级加密算法,如AES、RSA和DES。JCA则提供了加密、哈希和签名等基本...

    java加密与解密的艺术全包括源码.rar

    JCA是Java加密架构,负责提供加密服务的接口和抽象,而JCE是Java加密扩展,提供了具体实现,支持各种加密算法。 8. **证书与证书链**:在数字证书中,证书权威机构(CA)使用其私钥为用户或服务器签发证书,包含了...

    Java加密与解密的艺术含源码高清非扫描

    总之,Java加密技术是一个深奥但极其重要的主题,对于任何涉及数据安全的Java开发者来说,《Java加密与解密的艺术》都是一本值得深入研读的宝贵资料。通过系统学习和实践,开发者可以增强自己在信息安全领域的专业...

    java加密小程序

    Java加密小程序是一个非常适合初学者了解和实践Java编程中安全与加密技术的项目。在这个程序中,我们可以探索如何在Java环境中实现数据的安全存储和传输,这对于任何软件开发来说都是至关重要的。下面,我们将深入...

    Java-Java加密与安全教程

    3. **Java Cryptography Architecture (JCA)**:JCA是Java加密体系结构,为开发者提供了统一的接口,用于实现各种加密、解密、签名和消息摘要功能。 四、实战应用 1. **HTTPS通信**:在Java中,我们可以使用JSSE...

    Java 的IDEA 加密算法加密和数字签名编程

    ### Java 环境下IDEA加密算法及数字签名编程详解 #### 一、加密的必要性和可探究性 随着互联网技术的飞速发展,尤其是电子商务和电子政务的普及,安全加密技术的应用变得越来越广泛。在这样的背景下,对加密技术的...

    JAVA加密与解密的艺术第2版(良心保证第二版)

    《JAVA加密与解密的艺术第2版》是一本深度探讨Java平台上的安全加密与解密技术的专业书籍。在数字化时代,信息安全成为了至关重要的问题,而加密技术是保护数据隐私、确保网络通信安全的重要手段。本书作为良心之作...

    Java加密与解密的艺术.rar 完整源代码

    这份"Java加密与解密的艺术"的完整源代码集合提供了深入理解和实践这些概念的机会。下面,我们将详细探讨Java中加密和解密的核心概念、常用的库以及相关技术。 Java中的加密通常基于两个主要的API:Java ...

    java 加密软件

    Java加密软件是一种基于Java编程语言开发的工具,用于保护数据安全,主要功能是对文件或整个文件夹进行加密处理。在信息安全领域,加密是确保数据隐私和保护敏感信息免受未经授权访问的重要手段。Java作为一种跨平台...

    java 数字签名验签

    在Java中,数字签名通常使用Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 提供的API来实现。在这个项目中,我们看到它被用作二次开发的基础,意味着它提供了一个可扩展的框架,可以...

    java加密与解密

    Java加密与解密是信息安全领域中的重要组成部分,主要用于保护数据的隐私性和完整性。在Java编程中,加密和解密技术广泛应用于数据传输、密码存储、数字签名等方面。本主题将深入探讨Java加密的相关知识点。 1. **...

    JAVA加密解密

    总结来说,Java加密解密涵盖了对称和非对称加密算法,以及哈希函数,它们在保护数据安全、实现数字签名等方面起着关键作用。通过学习和实践,开发者可以掌握如何在Java项目中有效地应用这些技术,以确保信息的安全...

Global site tag (gtag.js) - Google Analytics