📜  Java中的 javax.xml.crypto 包

📅  最后修改于: 2022-05-13 01:55:17.234000             🧑  作者: Mango

Java中的 javax.xml.crypto 包

具有包 javax.xml.crypto 的 XML 加密的通用类。现在这个加密包包含类似的类,用于在其操作中访问 XML 加密,例如创建 XML 签名或加密的 XML 数据。

这个包中有两种类型的 javax.xml.crypto 类,它们是 KeySelector 类,它允许开发人员提供实现,该实现将使用在 KeyInfo 对象和 URIDereferencer 类中获得的信息来定位和可选地验证密钥,这些类允许开发人员在这个有用的包 javax.xml.crypto 下生成和创建唯一的自己的 URI 解引用实现

这个包 javax.xml.crypto 以独特的 XML 机制类型创建基础,该类型将验证 XML 生成其过程,即使用内部方法将 XML 签名和 KeyInfo 解析和调用为结构的正在进行的机制过程,以及在JSR 支持一种实现的类似类型,如 DOM。这些 XML 数字签名正在获得实现目标,例如带有Java SE 的包集,通过新的模块类型支持 DOM 机制,此示例将在未来添加为 JDOM

模块Java.xml.crypto:解释 XML 密码学的 API

模块图:

java.xml.crypto
    --> java.xml
        --> java.base
            GeeksforGeeks
模块图

  • Java.xml.crypto
  • Java.xml
  • Java.base

包 javax.xml.crypto 的使用 在这个包中 javax.xml.crypto

  • javax.xml.crypto:在 javax.xml.crypto 中使用的包
  • javax.xml.crypto:具有 XML 加密的通用类
  • javax.xml.crypto.dom:具有 javax.xml.crypto 包的 DOM 指定的类
  • javax.xml.crypto.dsig:用于创建和验证 XML 数字签名的类
  • javax.xml.crypto.dsig.dom: DOM 指定的类,类似于 javax.xml.crypto.dsig 包
  • javax.xml.crypto.dsig.keyinfo:这个类用于解析和访问 KeyInfo 元素和结构
  • javax.xml.crypto.dsig.spec:这个参数化的 javax.xml.crypto.dsig.spec 类通常使用 XML 数字签名
  • javax.xml.crypto:它有用于使用 XML 加密的通用类似类

接口总结

  • AlgorithmMethod:表示在 XML 安全规范中声明的算法的抽象
  • 数据:具有导致实现 URIReference 或其后续转换的输入/输出的抽象表示
  • KeySelectorResult:结果已由 KeySelector.select 方法返回
  • NodeSetData:此节点具有已发生节点集的数据类型的抽象表示
  • URIDereferencer:在其上实现 URIReferences
  • URIReference:它通过 RFC-2396 指定的路径 URI-Reference 验证数据对象
  • XMLCryptoContext:访问一组通用上下文数据,用于在其上执行的 XML 加密操作方法
  • XMLStructure:来自任何命名空间的 XML 结构查询的抽象表示

班级总结

  • KeySelector: Key 选择器通过使用在其 KeyInfo 对象中获得的信息来查找访问键并在其中返回一个键
  • KeySelector.Purpose:此 KeySelector.Purpose 键的目标是在选择中选择目标
  • OctetStreamData:一个数据类型的流,包含一个八位字节流数据

异常摘要

  • KeySelectorException:此 KeySelectorException 是由简单类 KeySelector 引发的异常情况
  • MarshalException:一种异常情况,指示正在运行 XML 编组或解组进程的阶段
  • NoSuchMechanismException:此 NoSuchMechanismException 异常由特定 XML 机制引发,正在通过访问请求但在其运行环境中不可用
  • URIReferenceException:此 URIReferenceException 显示异常条件抛出异常,同时 URIReference 中存在取消引用
  • XMLCryptoContext:包含为运行它的 XML 加密操作而存储的通用上下文内容数据
  • XMLStructure:从任何命名空间对 Exception 的 XML 结构进行分类

例子:

Java
// Java Program to show Showing Syntax and use of Package
// javax.xml.crypto Via Classes, Interfaces And Exceptions
  
// Having URIReference and XMLCryptoContext
public MyServer(final URIReference abc,
                XMLCryptoContext cde)
    throws URIReferenceException
{
  
    String str = abc.getURI();
  
    if (str.equals(STYLESHEET)
        || str.equals(STYLESHEET_B64)) {
  
        // Try block to check for exceptions
        try {
  
            // reading from file
            FileInputStream fcs
                = new FileInputStream(new File(
                    DATA_DIR,
                    str.substring(str.lastIndexOf('/'))));
  
            return new OctetStreamData(fcs, abc.getURI(),
                                       ref.getType());
  
            // Display message only
            System.out.println("Hello GFG Readers!");
        }
  
        // Catch block to handle exceptions
        catch (Exception e) {
            throw new URIReferenceException(e);
        }
    }
  
    // Fallback on it
    return defaultUd.dereference(abc, cde);
}


输出: