RSA 加密/解密指数和 RSA 签名/校验指数之间有什么区别吗?
如何使用iText签署pdf?我正在浏览这个LINK 但却不了解my_private_key.pfx.我真的需要数字签名证书吗?请澄清我.提前致谢.
我正在使用下一个命令来创建自签名数字签名证书:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout myCert.pem -out homeMadeCrt/myCert_20140209_230846.pem -subj "/C=IL/ST=Oregon/L=Portland/O=companyName/CN=CommonName/GN=GivenName/SN=SureName/emailAddress=email@addresss.com/serialNumber=123456"
openssl pkcs12 -export -in myCert.pem -out myCert.p12 -password pass:foobar
openssl pkcs12 -in myCert.p12 -out myCert.crt -password pass:foobar
一切都很好,唯一的问题是我需要发行人的详细信息与主题不同,但在这种方法中它们是相同的。
你知道我可以控制发行人的详细信息吗?
你能否详细解释一下我最终给我一些关于 iText 分离签名究竟意味着什么的例子(一个用于附加,一个用于分离)?
我找到了这个精彩的文档:关于 iText 数字签名的iText 数字签名 pdf但我仍然不确定我是否理解 iText 分离签名概念。
阅读文档(见链接)我找到了这个定义:
在 PDF 中,我们有时会提到分离的签名。根据维基百科,分离签名是一种数字签名,它“与其签名数据分开”,而不是“捆绑到一个文件中”。这个定义在 PDF 的上下文中并不完全正确:签名包含在 PDF 文件中,但签名的属性是“签名的一部分”,而不是“存储在签名字典中”。
我不清楚“签名的属性”是什么意思(它指的是什么签名属性?)
请注意,文章(iText 文档)的作者正在处理签名 PDF 文件的以下片段:
%PDF-1.4
%âãÏÓ
3 0 obj
<</F 132/Type/Annot/Subtype/Widget/Rect[0 0 0 0]/FT/Sig
/DR<<>>/T(signature)/V 1 0 R/P 4 0 R/AP<</N 2 0 R>>>>
endobj
1 0 obj
<</Contents <0481801e6d931d561563fb254e27c846e08325570847ed63d6f9e35 ... b2c8788a5>
/Type/Sig/SubFilter/adbe.pkcs7.detached/Location(Ghent)/M(D:20120928104114+02'00')
/ByteRange [0 160 16546 1745 ]/Filter/Adobe.PPKLite/Reason(Test)/ContactInfo()>>
endobj
...
9 0 obj
<</Length 63>>stream
q
BT
36 806 Td
0 -18 Td
/F1 12 Tf …Run Code Online (Sandbox Code Playgroud) 背景: 我最近一直在使用gzip压缩文件进行大量的工作.我在阅读Python zlib文档时发现的一件有趣的事情是声称CRC不应该用作通用哈希算法.这让我想知道,如果CRC不是一般的哈希算法,它的重点是什么?检查平等不是重点吗?
我的问题看起来像这样:我在javaCard上生成一个签名(jcdk 2.2.2),当我想在终端上使用BouncyCastle验证它时,签名并不总是被验证 - 3,66中的1(平均100次尝试)签名是经核实,其余部分归还假.当我验证卡上的签名时,它总是返回true,但是在终端上它通常返回false,但有时是真的.因为终端有时给出一个肯定的答案我认为代码是好的,原因是其他地方,但我可能是错的.
在javacard im usign Signature.ALG_ECDSA_SHA,并在终端Signature.getInstance("SHA1withECDSA","BC")上我尝试了SHA1withDetECDSA,但我的行为相似.
请帮忙.
我有一个签名的"DLL"文件,我想在运行时验证他的数字签名("在我加载之前")
我的代码中嵌入了证书的公钥,有没有办法从数字签名中获取"消息摘要"?或另一种验证文件的方法没有被操纵?
我不想检查证书的"CA"和其他属性,因为恶意用户可以创建具有相同属性的证书
*注意我也不想使用SignTool :)
可以使用PGP对文件进行签名,通过clearsign在CMD中执行以下命令来使用选项
gpg --clearsign filename
GnuPG使用什么样的算法来清除选项,这样即使在执行签名之后,输出签名也是可读的?
我阅读了一本手册,说明了clearsign选项是如何工作的,但我无法理解它.它可以在这里找到.
根据手册,盔甲适用于签名,使签名不可读.但问题是清晰度如何使签名可读.
但是,如何控制由哈希算法和加密函数组成的签名输出作为明文?
通过使用散列和加密函数,如何将输出保证为可读的ASCII字符范围?
有人可以提供有关如何使用 node.js 实现数字签名的基本演练吗?我已经谷歌搜索,但还没有得到它。说,我有一个 API,我想签名并验证对它的每个 http 请求和它的响应。这就是我目前的想象,请纠正我的错误:
1)我需要为客户端生成一个足够随机的密钥,用于签署请求;
2)结果签名(通过标头提供)是用字符串的密钥散列加密的,它必须包括:
然后,服务器将能够检查消息的真实性。
问题:
1)nonce(一些随机值)和时间戳(我读过一篇建议同时使用两者的帖子)在这种情况下有什么区别?
2) 我是否需要在该字符串中包含 eTag 标头?
3) 还有什么,上面没有列出,应该包括在内?
4) 我应该在 API 服务器上保留与客户端相同的密钥并使用它解密和检查请求,还是应该将存储在 API 服务器上的密钥和存储在服务器上的密钥与 API 通信私钥-公钥对?如果它们确实需要成为私钥 - 公钥密钥对,我如何在节点中使用公钥(反之亦然)解密用私钥加密的内容?
请纠正我描述中的错误并添加我遗漏的内容。谢谢你。
我在客户端上有以下javascript
var NodeRSA = require('node-rsa');
var ClientSide = new NodeRSA({ b: 512 });
var privateKey = `-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAj1IEeouqDYiMX0rMiPAI64UntzNxE01+tB+k+aKesHzVXE5A
GnyWHIFdrByfjR93CMh3y56xsL78VP1/Xp8iVmAnbiFN5kpmawJ1owhDvNIl8A+Q
UiDzMg0z/yepzjp61Dg4CUFzGrmTfYO1aMWyWhR0ZKfy+HvVaGjpod2ioScU7Fkz
eO+fDR85quLFta7OXDwqD4NCPYeZTS5fgK1Nn72nrItoj5e36fzWvZntfvi4NHt7
nqOj4VH5e5YJHvmLWHh5Swh+OVyIAwhxYSK5PSupicGG8ixVy75hkjzZ2vW5JdVW
MPYbVUMpqjtE+i1zQTYNJ36hM/zznZR/drU7UwIDAQABAoIBAHvs02qTMWuaUqZj
KxCNXWkpLfo/RNsH+zMM2b3xW34HswWps8wzRilHwxN7fIquVmMF1HAAvGyz98QV
nfjXaP1/DxkvOwiR9JU6/zUFhGzU2XEGRCh/zUnOGNPcG/vynRq7sdhu+3R0WpAB
Pu9lYp55aVtPzcwGZ7VsYfhQiLsGnJ5GkBS7z4P3aG29By6fGnTwR83iQHtR5SvQ
Rb/xJxZjTM00OZ2ssAtw24Hu8QXTuOAHdy2B5E1tsF+hVHs4iB0OiLzW7m4GBkb/
/og76ouB4G+j6IjG2E5TO0eAdslKn2w3dZRgqnVDF5CPtRdbAc83xOwSouuuqN26
FPsLkwECgYEA4Jyf3j9UzW0znnOcul4MDvfKuMCzD/5wnc24aYBbie4Joi/jqDbc
9J5jqyfgzdqwjxiwkEFJi7gBcclO1i1SoIfA6ooVoJeQlzdMpSytZVhzgE2aJO1E
ORP7kLimAHysjMJ27Fix1VRZltcZe0E9DErkw/hoPemAMvDvW2myyaECgYEAo1k7
iS4O9GSHUKvbEJWR5r+9Qvv4aObOaRFRDfq4/E9fZwujzKAvxwkGFXjxwpzxKJqN
paVEL2cWY+S46f4B501xgnNknuf6po8ZEaXD5vy281xoU4YX1KFySbV8eXGmkyiO
M2+vPGrsTGOIsKnQW8jmaxWTClbSdPoLWfwzqHMCgYAS/Kp2+xuMEgMfDd7d0j1q
tn+ohoGchIG4lT9Vi8gxLLIbx7iS67BZ7Vm3ijNys13hetDSIPK6oN9eYwoLCOHH
ODKSoQGbBbTvU3ljLRerTYLWAblaDcSKnqnRXgqKV/+uFnI/IHBH/E1mduBsjuM+
OsaD2mfVc/umUr+pFpJKgQKBgCeaTb3fhc6oxMnBMLZfnOT13Zvs3PgJ5UdB5IXg
IJNDZxzjjI3i1FKMFIaGMQ7+39T5S5g6bkKT2rDTViWc6Lc8ZmW7Nkz0byeMkAZg
SxOod26fG8gMPaDWl4/ZSVlkPX92GKvNyw152tpWU2CJezOVjI+vxlt+Wz3zFWd2
psuTAoGAbdlzYFK+7e2ru8fdbVk9SBLn9cnPdDCx+wgJV7dB0zzSh1oqIrE766Mx
c9wBIKWNqNEsFsFI4ejuMRdC4Hyc6ecCNea3nj3BHCS70V0p1MtFII6SpADDqBTW
3ZnLfcN2MiFDBXVqNkCsMcqd8KVdzEqEy1JDplmW84OpfQu88ms=
-----END RSA PRIVATE KEY-----`
var publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj1IEeouqDYiMX0rMiPAI
64UntzNxE01+tB+k+aKesHzVXE5AGnyWHIFdrByfjR93CMh3y56xsL78VP1/Xp8i
VmAnbiFN5kpmawJ1owhDvNIl8A+QUiDzMg0z/yepzjp61Dg4CUFzGrmTfYO1aMWy
WhR0ZKfy+HvVaGjpod2ioScU7FkzeO+fDR85quLFta7OXDwqD4NCPYeZTS5fgK1N
n72nrItoj5e36fzWvZntfvi4NHt7nqOj4VH5e5YJHvmLWHh5Swh+OVyIAwhxYSK5
PSupicGG8ixVy75hkjzZ2vW5JdVWMPYbVUMpqjtE+i1zQTYNJ36hM/zznZR/drU7
UwIDAQAB
-----END PUBLIC KEY-----`
ClientSide.importKey(privateKey, 'pkcs1');
let result = ClientSide.sign('test_message', 'base64')
console.log(result)
var serverSide = new NodeRSA({ b: 512 …Run Code Online (Sandbox Code Playgroud) cryptography ×4
certificate ×2
encryption ×2
itext ×2
java ×2
rsa ×2
.net ×1
algorithm ×1
bouncycastle ×1
c# ×1
crc ×1
gnupg ×1
go ×1
gzip ×1
hash ×1
javacard ×1
javascript ×1
node.js ×1
openssl ×1
pdf ×1
pgp ×1
self-signed ×1