第 73 章 crypto (JCE)组件

作为 Camel 版本 2.3 可用

使用 Camel 加密端点和 Java 的 Cryptographic 扩展可轻松为 Exchange 创建数字签名。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>

73.1. 简介

数字签名利用了 Asymmetric Cryptographic 技术为消息签名。从(very)高级别,算法使用带有特殊属性的免费键对,该属性与一个密钥加密的特殊属性只能被另一个密钥解密。个私钥是安全的保护,用于"签署"消息,而另一公钥则与有兴趣验证已签名消息的任何人共享。消息通过使用私钥加密邮件摘要来签名。这个加密摘要与消息一起传输。另一方面,verifier 重新计算消息摘要,并使用公钥解密签名中的摘要。如果两个摘要都与验证器都匹配,则仅知道私钥的持有者才能创建签名。

Camel 使用 Java Cryptographic Extension 的 Signature 服务,执行创建交换签名的大量加密。以下是一些用于解释 Cryptography、Message 摘要和数字签名的机械资源,以及如何通过 JCE 来使用它们。

  • Bruce Schneier's Applied Cryptography
  • Cryptography with Java by David Hook
  • 以往的维基百科 Digital_signatures