RSA加密Javascript

16

请问有人可以帮我吗?我被指示编写一个应用程序,该程序将使用RSA公钥对某些数据进行加密。

显然需要使用“RSA加密”(我以前从未听说过或见过这个?)

RSA通常使用哪种加密密码?

var key = "TUlHZE1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTEFEQ0Jod0tCZ1FDbVFiTWc3SWRpeHVmYWEwcDd2ODVLVytmUnVlZ216UUhibnNoWjhmbXlTQW9MMXRFVzAyNEZKVFlSTFZxN0VsV2p1R0U4aHQ3RmJjN1NURWpxZVViWU5xdnRiVWN6UFZYSE5FdStYRUVndGszazlFNXVQWG0wVzRIc3RtK0FhRXcyMmxxb2lFNGlrT1QzZzdPRXNHSVFCMVNlSlRtVTE1eFBBZ3M3SXRjTVFRSUJFUT09";

var data = "Xa21dr";

4
你的问题没有解释你为解决这个问题做了什么,它目前看起来像是一个请求代码的要求。请分享你尝试过的实现,并解释它不符合你的要求的原因。 - Duncan Jones
1
首先,对于一个BER编码的PKCS#1公钥来说,似乎没有什么理由去执行双重 base64编码。(我一直在想为什么数据不是以大写字母'M'开头 :)) - Maarten Bodewes
1
@DuncanJones 我不是在要求“代码”,如果你读懂我的问题,你就会明白我在问什么。我想知道RSA公钥和一些数据一起加密的基本原理,因为我找不到任何有效的资料。 - fabriek-huis
1
@owlstead 是的,那看起来是正确的。我之前用base64解码过密钥,例如:MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCmQbMg7Idixufaa0p7v85KW+fRuegmzQHbnshZ8fmySAoL1tEW024FJTYRLVq7ElWjuGE8ht7Fbc7STEjqeUbYNqvtbUczPVXHNEu+XEEgtk3k9E5uPXm0W4Hstm+AaEw22lqoiE4ikOT3g7OEsGIQB1SeJTmU15xPAgs7ItcMQQIBEQ== 但显然密钥必须保持完整,然后使用它的字节加密要发送的数据。 - fabriek-huis
1
你显然不知道RSA是如何工作的,算了吧,这个问题现在都解决了! - fabriek-huis
2个回答

23

加密数据的格式是什么?它也是base64吗? - Tarion
Pidder不再在线? - Toubey
@Toubey 看起来对我来说仍然在线,刚刚检查了他们的网站-https://www.pidder.com/pidcrypt/ - 仍然可以访问。你也可以直接从SourceForge下载- http://sourceforge.net/projects/pidcrypt/。 - fabriek-huis
1
该项目已不再维护。另外@whitedeath - 你能否澄清它是否实现了PKCS#1 v1.5(自1998年以来易受攻击)或PKCS#1 v2.2(具有最优非对称加密填充的RSA)?出于这些原因和易用性,我选择了Forge,它也是GitHub上一个相当活跃的项目。 - Philzen
@Philzen 不知道 pidCrypt 打包了哪个 PKCS v 版本,你需要下载源代码并查看(我需要 PKCS #1,所以选择了 pidCrypt,因为它完美地满足了我的需求)。 - fabriek-huis
注意:pidCrypt在GPL许可下发布(因此,如果您使用该库,则您的软件也必须合法地在GPL下许可)。 - yeah22

13

谢谢,pidCrypt工作得非常完美,但我会再看一下。pidCrypt不仅提供RSA。 - fabriek-huis
4
Forge非常好用。我在开始使用时遇到了一些小问题,因此我在这里创建了演示:http://digitalbazaar.github.io/forge/ - Todd Horst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接