Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问硬件加密设备java_Java_Security_Certificate_X509certificate_Devicetoken - Fatal编程技术网

访问硬件加密设备java

访问硬件加密设备java,java,security,certificate,x509certificate,devicetoken,Java,Security,Certificate,X509certificate,Devicetoken,我正在尝试制作一个简单的java应用程序,它使用一个安全令牌来为文件的任何扩展名签名 我需要读取令牌中的所有信息,并用它对文件进行签名,以便稍后加载签名文件,获取原始文件和所有其他信息 这是我目前的示例代码,我看到的主要问题是不同的令牌可以有不同的.dll,我需要类似于此的抽象 String pkcs11config = "C:/Documents and Settings/nsaul/Escritorio/Lib/ep2pk11.cfg"; Provider p = new

我正在尝试制作一个简单的java应用程序,它使用一个安全令牌来为文件的任何扩展名签名

我需要读取令牌中的所有信息,并用它对文件进行签名,以便稍后加载签名文件,获取原始文件和所有其他信息

这是我目前的示例代码,我看到的主要问题是不同的令牌可以有不同的.dll,我需要类似于此的抽象

    String pkcs11config = "C:/Documents and Settings/nsaul/Escritorio/Lib/ep2pk11.cfg";

    Provider p = new sun.security.pkcs11.SunPKCS11(pkcs11config);

    //Use the provider
    char [] pin = {'#', '#', '#', '#', '#', '#', '#', '#'};
    KeyStore ks = KeyStore.getInstance("PKCS11",p);
    ks.load(null, pin); 
我找到了一个C语言的指南,它似乎可以满足我的需要,但是Java是这个项目的一个需求


没有可用的抽象,您必须自己编写一个。如果您的需求是支持多个潜在的提供者,我假设这就是您所说的不同令牌可以有不同的dll的意思,因为提供者之间存在细微的差异,您应该创建一个类来负责每个提供者,并将为所有操作实现定义良好的接口。
在代码的其余部分中,您将只使用该接口,并且您可以使用依赖项注入来根据当前安装使用适当的具体提供程序处理程序

请修复您的术语。您可以对文件进行加密和解密,也可以对文件进行签名并验证签名。没有无符号这回事。一般来说,可以从文件中删除签名,但在这种情况下没有任何实际意义。