问题标签 [jsencrypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 C# 中通过 JS 解密 RSA 公钥加密数据的问题
The data to be decrypted exceeds the maximum for this modulus of 256 bytes
在 C# 中解密 RSA 加密字符串时出现错误。
我想要达到的目标:
- 在 C# (RSA) 中生成公钥/私钥对
- 将私钥保存在会话/临时存储中以在解密期间使用
- 向客户端/JS 发送/返回公钥以用于加密
- 用公钥加密 JS 中的字符串(最多 20 个字符)并发送到服务器
- 使用步骤 2 中保存的私钥解密服务器中的加密字符串
什么有效:
- 生成公钥/私钥对
- 使用库jsencrypt在 JS 中进行加密
到目前为止编写的代码:
C#
JS
更新/变化:
如果我将密钥大小设为 1024 而不是 2048,我得到的错误是The data to be decrypted exceeds the maximum for this modulus of 128 bytes.
. 根据我在调试器中看到的内容,加密字符串的总字节数为 172。
更新 | 解决方案:
- 删除 JS 中的这一行
var base64result = btoa(encrypted);
。直接返回加密值即可。 - 在 C# 解密方法中,将此行更改
var bytesPlainTextData = csp.Decrypt(bytesCypherText, false);
为var bytesPlainTextData = csp.Decrypt(bytesCypherText, RSAEncryptionPadding.Pkcs1);
.
笔记:
- 请忽略不正确的方法返回类型,这仍然是一个 POC,并且正在手动填充许多值。
- 我不是安全问题方面的专家,所以很多代码都是从不同的来源挑选出来的。
angular - 客户端-服务器程序之间的加密-解密不起作用
我们正面临数据加密解密的问题。在服务器端,我们有这样的解密 java 代码
对于客户端的加密,我们使用 jsencrypt。代码看起来像这样
我们使用 RSA-3072 密钥生成技术来创建公钥和私钥。谁能建议我在 angularjs 中进行适合服务器端实现的加密的最佳方法?
更新:
样本:
原始数据:4000000000000002
私钥:
公钥:
加密数据:
例外:
更新:
java - 当使用 jsencrypt.min.js 加密和 java 解密时抛出异常
当使用 jsencrypt.min.js 加密和 java 解密时抛出异常
strp1:
后端 private_key 是:
后端 public_key 是:
step2:我使用vue.js导入jsencrypt.min.js加密代码,代码为:
第3步:使用java解密该代码,然后抛出Excetpion
我的java解密代码是
MAX_DECRYPT_BLOCK = 128
我发现step2 code
字节数组长度是256,但是如果解密这段代码
我可以得到正确的结果,然后我更改了 MAX_DECRYPT_BLOCK = 256,但仍然没有用,然后我看到有人说“jsencrypt 使用 pkcs1 规则,java 使用 pkcs8 规则”,我尝试了 Cipher.getInstance("RSA/ECB/PKCS1Padding") 但仍然没用。
你有什么想法来解决这个问题
reactjs - jsencrypt 使用公钥加密的替代方案
我目前正在使用jsencrypt
公钥加密文本。这就是我所拥有的。
文件.jsx
是否有另一个图书馆可以做到这一点?我正在阅读crypto-js
但我不确定它是否在上面。
php - JSEncrypt 可以签名和验证,但 PHP openssl_verify 失败
JSEncrypt 可以签名和验证,但 PHP openssl_verify 失败
使用 JSEncrypt 签名/验证消息可以正常工作。但是,当我使用 openssl_verify 将数据发送到 PHP 服务器进行验证时,它会返回:
错误:0906D06C:PEM 例程:PEM_read_bio:没有起始行
知道为什么吗?
javascript - Javascript不解密,laravel RSA加密字符串
问题陈述
我需要使用 RSA 算法在 Laravel 中加密细节,然后在 Javascript 中解密。
所做的努力
在 laravel 中,我使用phpseclib
库进行加密。下面给出了用于加密字符串的 Laravel 代码...
下面给出了这个脚本的输出。
私钥
我正在使用jsencrypt库来解密 RSA 字符串。
下面给出了控制台中js代码的输出...
要求
这是在单独的离线系统中解密字符串所必需的。我不会在实时网站上使用 javascript 解密。而是在离线系统上使用 javascript 进行解密。
node.js - [Nodejs - Crypto][JSencrypt] rsa 例程:RSA_padding_check_PKCS1_OAEP_mgf1:oaep 解码错误
我正在使用NodeJS Crypto模块在后端使用 RSA 进行加密和解密,并在前端 RSA使用JSencrypt
但问题是每当我在前端使用公钥加密时,我的后端都会抛出这个错误(PS:我在 NuxtJS 中使用它,所以使用导入函数。)
然后每当我尝试在后端使用这段代码进行解码时,它都会抛出这个
这是我使用 privateKey 进行 RSA 解码的后端代码
encryption - 了解 JSEncrypt
我一直在探索各种用于 RSA 加密和解密的 JavaScript 库,并且在https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/2.3.1/jsencrypt.min.js遇到了一个 JSEncrypt 。
但是,我很难理解这个库用于 RSA 加密和解密的逻辑和操作。主要是,
- 加密算法使用了哪些算法?
- 使用了哪些填充方案?
- 有盐吗?如果是这样,盐是如何产生的?
- 任何其他应注意的信息。
我找不到该库的任何体面的文档,也无法理解源代码的丝毫。任何帮助是极大的赞赏。
javascript - jsencrypt 从加密函数返回空解密字符串
我正在玩 jsencrypt 并注意到一些非常奇怪的东西。这是我的代码。如果它们在变量中,则加密和解密工作。但是当我控制台记录 enc 然后将值复制到字符串中时,解密返回 null。有谁知道我做错了什么?