第 74 章 crypto (JCE)组件
从 Camel 版本 2.3 开始提供
使用 Camel 加密端点和 Java 的加密扩展,可轻松为交换创建数字签名。Camel 提供了一对灵活的端点,它们被用来在交换工作流的一个部分为交换创建签名,然后在工作流的后续部分中验证签名。
Maven 用户需要将以下依赖项添加到这个组件的 pom.xml
中:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-crypto</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
74.1. 简介
数字签名利用 Asymmetric Cryptographic 技术为消息签名。从(very)高级别中,算法使用带有特殊属性的免费密钥对,数据通过一个密钥加密的属性只能与其他密钥进行解密。某个私钥(私钥)被严格保护,用于"注册"消息,而其他公钥则与有兴趣验证签名消息的任何人共享。消息通过使用私钥加密消息摘要来签名。这个加密摘要会与消息一起传输。在另一个端,verifier 重新计算消息摘要,并使用公钥解密签名中的摘要。如果两个摘要都与 verifier 知道只有私钥的拥有者才能创建签名。
Camel 使用 Java Cryptographic Extension 中的签名服务执行创建交换签名所需的所有重度加密滞后。以下是说明加密、消息摘要和数字签名机制的一些极佳资源,以及如何利用 JCE。
- Bruce Schneier 的 Applied Cryptography
- 以 Java 为 David Hook 开始加密
- 以前的 insightsful Wikipedia Digital_signatures