据我所知,RSA密钥通常是基于(强)随机生成器生成的.
相反,我想基于密码创建它们.
或者更确切地说是它的哈希值,例如sha512(sha512(密码+盐)+密码+辣椒)
这需要在JavaScript中完成客户端.
谁会知道怎么做?是否有一个简单的JavaScript库,可以根据给定的输入确定性地创建RSA密钥对?
(实际上,我提到了RSA,但任何安全的非对称加密就足够了,我只需要公私加密)
另外:我需要这个,因为我正在构建一些安全的通信解决方案,不需要依赖连接甚至服务器来保证安全.
我正在使用随机密钥使用AES加密所有内容,并且密钥是RSA加密的.这个想法是Alice可以使用Bob的公钥对其内容(或实际上是她的内容的AES密钥)进行RSA加密(因此Bob的公钥必须在线存储).
之后,当Bob再次输入密码时,他的浏览器可以在现场确定性地计算他的RSA私钥和公钥,从Alice下载内容,并使用他的私钥在本地解密.
随着WebCrypto API的发展和Chrome和Firefox的支持,我想用它来对PDF文档进行数字签名.周围没有太多的文献,但我找到了一些例子[1]和一个名为PKI.js的图书馆[2].在示例中,描述了签名过程,但最终返回签名.我希望我的Base64 PDF文件在签名的Base64字符串中再次返回,但遗憾的是,这不是发生的事情.据我所知,PKI.js也没有提供签署我的Base64 PDF的方法.
有没有办法只使用JavaScript和WebCrypto API签署PDF?私钥可以输入<textarea>或甚至更好地存储在浏览器的证书设置中.
Base64 PDF(来自REST API)→使用JS和证书签名→签名Base64 PDF(发送到REST)
这是我想要做的:
所以现在我面临的问题是如何在步骤3中执行此操作(是).如果签名在服务器上没有问题,我有一些html-> php-> pdf类可以使用数字签名进行签名但签名必须是在服务器上作为文件.问题是,我怎样才能直接在服务器上进行.用户选择是,读取签名(从他的计算机上的读者)并发送到服务器并完成签名.在这里,我相信如果没有像Java这样的东西,我就无法做到.在我看来,PHP和JavaScript肯定对于这个动作来说还不够.
有没有人遇到过这样的问题?也许一些准备使用的库?
PS不太确定标签是否正确,但无法弄清楚要放哪个.