标签: digital-signature

OpenSSL:RSA中使用私钥加密并使用公钥解密

我想使用 OpenSSL 和 RSA 算法用私钥加密文件:

openssl rsautl -in txt.txt -out txt2.txt -inkey private.pem -encrypt
Run Code Online (Sandbox Code Playgroud)

现在如果我进行解密操作:

openssl rsautl -in txt2.txt -pubin -inkey public.pem -decrypt
Run Code Online (Sandbox Code Playgroud)

此操作需要私钥

我知道我应该使用公钥来加密,如果我使用私钥,我就会得到签名。

但是,我想这样做是为了学习。

encryption rsa signature digital-signature

9
推荐指数
1
解决办法
1万
查看次数

Delphi:如何使用文件时间戳进行数字签名?

我的许多客户使用软件进行数字签名.这个软件叫大堤,它是从商业的意大利室内设置和它连接到智能卡硬件像这样.

现在我希望从我的应用程序中做出数字签名,绕过执行它的软件.

是否可以在Delphi中执行此操作,是否有人已经这样做了?我也想添加时间戳.

BOUNTY注意事项:我不知道在意大利以外这是多么重要,无论如何在意大利有一项法律要求某些文件按特定规则存储.为了实现这一点,必须对数字签名并在文件上放置时间戳(pfd文件).基本上我问"是否有任何已经在Delphi中实现这一点并找到了成功的方法.你能分享你的结果吗?".基本上有一百万个USB智能卡读卡器,我不想在我的应用程序中开始支持数百万个驱动程序(我编写的应用程序部分是文档管理系统),如果有像TWAIN这样的东西用于图像扫描程序这会很棒.

我也可以接受链接到特定硬件的限制,所以我可以说如果你想要这个功能你必须购买这个硬件,我不想支持所有现有的硬件或时间戳/数字签名Web服务.所以我正在寻找的是Delphi 1-0-1的pdf文件的时间戳和数字签名.我希望我表达自己,如果没有,请问.

delphi digital-signature

8
推荐指数
1
解决办法
2888
查看次数

如何使用智能卡在Web应用程序(JavaScript)中制作数字签名?

我们编写了一个文档管理系统,并希望使用Web客户端对文档进行数字签名.我们的Java客户端应用程序已经能够应用和检查数字签名,但我们希望甚至可以使用我们的Web客户端进行签名.这是用GWT编写的,因此,当在客户端运行时,它是一个JavaScript应用程序.

我们不想创建Java applet并将其下载到客户端并执行它.我们希望使用浏览器安全设备或浏览器API来签署文档.我们还希望保留完整的文档服务器端,并仅向客户端移动文档哈希.

我们认为这应该可以使用NSSnpapi/npruntime,但我们没有找到任何关于此的信息.(顺便说一句,在IE中也可以使用npruntime吗?我们应该使用ActiveX来实现与IE相同的结果吗?)

你有什么提示吗?

npapi digital-signature pkcs#11

8
推荐指数
2
解决办法
2万
查看次数

带有RSA签名的SHA256在各种Android设备上返回不同的输出

我正在开发一个Android应用程序,我需要使用java Signature进行数据身份验证.

在每台Android设备上,我都可以对数据进行签名并验证其签名.但是,给定一定数量的数据进行签名,一个明确的模数,一个明确的私有指数和一个明确的公共指数,我的签名输出会有所不同,具体取决于设备.我尝试使用大量设备,我获得了Android 3.2和3.2.1的相同签名,但是对于Android 2.2.x设备却有所不同.

我从以前KeyFactory在java项目中使用RSA 生成的常量字段计算这些签名.密钥大小为2048bit.

以下是我用于调用签名和验证的代码的引用.

public byte[] signData(byte[] data, PrivateKey privateKey) throws ... {
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initSign(privateKey);
        signature.update(data);
        return signature.sign();
}

public boolean verifyData(byte[] data, byte[] sigBytes, PublicKey publicKey) throws ... {
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initVerify(publicKey);
        signature.update(data);
        return signature.verify(sigBytes);
}
Run Code Online (Sandbox Code Playgroud)

如果我没有误会,使用带有RSA的SHA256的签名是确定性的.那我怎么解释这样的行为呢?另一个有趣的问题是,我怎样才能使这项工作跨设备,即签名是相同的,不管我使用哪种设备?

先谢谢你,弗兰克!

java android rsa digital-signature

8
推荐指数
1
解决办法
2万
查看次数

Spring Security SAML - 无法验证签名

我在Tomcat 7上使用Spring Security SAML 2.0示例webapp并对其进行了修改以尝试使其针对Ping Identity服务进行身份验证.webapp正在与服务进行通信,它正在发回一个断言,但在尝试验证签名时失败,如下面的调试输出所示:

- Attempting to verify signature and establish trust using KeyInfo-derived credentials
- Signature contained no KeyInfo element, could not resolve verification credentials
- Failed to verify signature and/or establish trust using any KeyInfo-derived credentials
- Attempting to verify signature using trusted credentials
- Failed to verify signature using either KeyInfo-derived or directly trusted credentials
- Validation of received assertion failed, assertion will be skipped
org.opensaml.xml.validation.ValidationException: Signature is not trusted or invalid
Run Code Online (Sandbox Code Playgroud)

我知道它无法验证签名,并且我已获得Ping Identity管理员使用的证书,但我不确定如何将其包含在应用程序中.我已经尝试使用JDK的keytool程序将它添加到示例应用程序附带的JKS(密钥库)中,但它似乎无法在那里找到它.我也尝试将它添加到服务提供商的元数据xml文件中,如下所示:

<md:KeyDescriptor …
Run Code Online (Sandbox Code Playgroud)

spring-security digital-signature x509 saml-2.0 spring-saml

8
推荐指数
1
解决办法
1万
查看次数

我应该对第三方DLL(如JSON.NET)进行数字签名吗?

我有一个使用各种第三方库(如JSON.NET)构建的应用程序.

我想确保构成我的应用程序的所有DLL都经过数字签名,包括第三方.鉴于这些未经作者签名,我是否可以/我应该自己签署第三方签名?

release code-signing digital-certificate digital-signature

8
推荐指数
2
解决办法
2586
查看次数

如何检查加密的S/MIME消息是否也已签名,而不对其进行解密

在加密此消息时,判断s/mime电子邮件是否使用附加签名进行签名的最简单方法(就计算资源而言)是什么?

如果邮件刚签名,则很容易.它有点像:

附加签名

   Content-Type: application/x-pkcs7-mime; smime-type=signed-data;
    name="smime.p7m"
Run Code Online (Sandbox Code Playgroud)

要么:

用于分离签名

   Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
    micalg=SHA1; boundary="----=_NextPart_000_00D2_01CD5850.61030BF0"
Run Code Online (Sandbox Code Playgroud)

在它的标题中.

但是当邮件被加密时,您无法判断它是否也已签名,因为两种情况的Content-Type标头相同(只是加密和加密/签名):

  Content-Type: application/x-pkcs7-mime;
    smime-type=enveloped-data;
    boundary="----=_NextPart_000_000D_01CDC82B.98454D80";
    name="smime.p7m"
Run Code Online (Sandbox Code Playgroud)

这是否意味着我必须解密消息只是为了告诉它是否也签名?现在,在我解密之前,似乎我甚至无法判断我的消息是否已签名(因为签名在加密数据中).或者,S/MIME加密和签名数据可能还有一些模式可以让我在没有解密的情况下区分加密/签名和加密/未签名数据(如果我没有解密证书,甚至可能这样做)?

email encryption smime digital-signature

8
推荐指数
2
解决办法
1万
查看次数

验证Azure AD令牌签名失败JAVA

我正在努力验证Azure AD令牌签名。

当我在下面的“ jwks_uri”字段中查找正确的键描述时

https://login.microsoftonline.com/common/.well-known/openid-configuration

我检查所属密钥数据。

我尝试使用“ n”-模数和“ e”字段来生成用于签名验证的公钥,但最终出现错误:

BASE64Decoder decoder = new BASE64Decoder();        
byte[] modulusBytes = decoder.decodeBuffer(n);
byte[] exponentBytes = decoder.decodeBuffer(e);

BigInteger modulusInt = new BigInteger(1, modulusBytes);
BigInteger exponentInt = new BigInteger(1, exponentBytes);

try {
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    RSAPublicKeySpec publicSpec = new RSAPublicKeySpec(modulusInt, exponentInt);
RSAPublicKey pubKey = (RSAPublicKey)keyFactory.generatePublic(publicSpec);
Jwt<Header, String> c = Jwts.parser().setSigningKey(pubKey).parsePlaintextJwt(token);

} catch (Exception ex) {
  ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

安慰:

io.jsonwebtoken.SignatureException: Unable to verify RSA signature using configured PublicKey. Signature length not correct: got 256 but was …
Run Code Online (Sandbox Code Playgroud)

java active-directory azure digital-signature access-token

8
推荐指数
1
解决办法
3004
查看次数

签名的可执行文件是否可以在保留签名完整性的同时被篡改?

我想知道在确定文件是否被篡改时,我可以在多大程度上依赖文件上的数字签名(又名 Verisign、Simantec 等的数字证书)。

假设我想要下载一个应用程序版本,该版本不再位于原始开发人员的网站上,而是可在 cnet、oldapps.com 或 filehippo 等第三方网站上找到。我通常会搜索旧的论坛条目,其中有人列出了 MD5 或 SHA1 哈希签名,看看它们是否与我下载的条目上的哈希相匹配。这仅适用于软件广泛传播的真正大型开发人员。

我想知道验证文件的数字签名是否是确保文件来自开发人员并且未被第三方更改的另一种可靠方法?

我要问的是:如果黑客用恶意代码注入已经签名的 DLL 或 EXE,有效地更改了文件的哈希值,是否会破坏数字签名,因为签名嵌入了某种摘要?或者签名完全不受影响?

security digital-certificate digital-signature tampering

8
推荐指数
1
解决办法
4850
查看次数

如何查看Postman在发出OAuth请求时使用的原始签名?

我正在使用Postman 5.1.3.我正在尝试使用Postman的OAuth屏幕连接到OAuth 1.0a端点.如何查看Postman用于构造散列"oauth_signature"参数的原始签名?我正在填写一个值

consumer_key
consumer_secret
signature_method
timestamp
nonce
version
Run Code Online (Sandbox Code Playgroud)

我将HTTP方法保留为"GET"并单击"发送".一切都很顺利,但我无法重现Java中的行为,这就是为什么我正在寻找一种方法来查看Postman在构建请求时使用的原始签名.

oauth digital-signature postman oauth-1.0a

8
推荐指数
1
解决办法
1165
查看次数