问题标签 [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.

0 投票
0 回答
506 浏览

javascript - 使用 JSEncrypt 与 java 不匹配从模块和指数生成公钥

在我的 js 代码中,我试图使用 JSEncrypt 库从模数和指数生成公钥。

但是生成的公钥与java代码不匹配。

下面是我的代码。

预期输出:

但实际输出:

在我的 javascript 代码中,相同模数和指数的公钥值每次都会更改。但在 java 中,相同模数和指数的公钥仍然相同。

为什么 java 和 javascript 公钥不匹配。还有其他方法可以从模数和指数生成公钥吗?

任何帮助将不胜感激!!!

0 投票
1 回答
1956 浏览

php - 如何解密使用 JSEncrypt 加密的 PHP 中的数据

我正在尝试通过使用对称和非对称加密来保护 JS 前端和 PHP 后端之间的通信。我正在客户端上创建一个对称密钥,并使用 JSEncrypt 使用服务器的公钥对其进行加密,并将其发送到服务器以供将来使用。但是,当我在服务器端获取数据时,我被卡住了。openssl_open 需要一个信封来解密对称密钥,我什至不肯定信封中应该包含什么数据。我的印象是信封是用公钥加密的对称密钥,但使用它并没有奏效。我也尝试过不同的解码组合,因为我读到 JSEncrypt 将消息编码为 base 64,密钥编码为十六进制,但这些尝试也没有结果。

JS加密代码:

PHP解密代码:

上面的代码没有输出任何内容,因为 openssl_open 调用失败(返回 false)。当我对 $encryptedKey 变量进行 base 64 解码时,我得到:

但是对称密钥每次都会改变,所以输出也每次都会改变。就像我说的,我尝试了不同的编码组合,但它们都返回类似的废话。正如 JS 代码所示,我已经加密了消息“test”。

我以前从未实施过加密,所以我在这里可能有点离题,但是在盯着这段代码好几天之后,任何见解都会受到赞赏。

编辑:我在使用 PHP 中的私钥解密时遇到问题,而不是使用对称密钥

0 投票
3 回答
8061 浏览

javascript - 将 Javascript 库 (jsencrypt) 导入 Angular 2 应用程序

我浏览了所有围绕这个问题的教程,但找不到解决方案。先来点背景。我有一个 Angular 2 应用程序,我需要使用这个 JS 库进行加密:https ://github.com/travist/jsencrypt

首先,我使用以下行安装了 jsencrypt 节点模块:npm install --save jsencrypt。这行得通,并且可以在我的 node_modules 文件夹中找到 jsencrypt 模块。

一些教程告诉我创建一个 src/typings.d.ts 文件,然后添加以下行: declare module 'jsencrypt';

然后,在我的comonents.ts 文件中,我使用以下行导入它: import * as JSEncrypt from 'jsencrypt';

我还尝试添加 <script src="/node_modules/jsencrypt/bin/jsencrypt.js"></script>

进入我的 .html 文件。

在我的 .component 文件的初始化中,我尝试声明一个简单的 JSEncrypt 对象: var decrypt = new JSEncrypt();

并且控制台显示此错误:TypeError: Object is not a constructor (evalating 'new WEBPACK_IMPORTED_MODULE_4_jsencrypt ()')

所以我假设它不识别 jsencrypt 模块。

我只使用 Angular 几天,所以我对 Angular 应用程序的结构组件的所有术语和基本理解非常陌生。任何帮助是极大的赞赏。

使用本教程作为起点: https ://hackernoon.com/how-to-use-javascript-libraries-in-angular-2-apps-ff274ba601af

0 投票
1 回答
2677 浏览

javascript - javascript中的RSA加密和Java中的解密

我有一个前端为 HTML、Javascript 和后端为 Java 的应用程序,我需要使用 RSA 发送密码和敏感信息。我在javascript中使用JSEncrpt,在java中使用Bouncy castle。 我需要知道如何管理密钥。如果我在 javascript 中动态创建密钥,我如何将私钥发送到我的后端,反之亦然。我的 javascript 代码对用户可见,在 javascript 中存储私钥不是一种选择。

Javascript代码:

对于 java 代码,请参见以下示例:http ://www.mysamplecode.com/2011/08/java-rsa-encrypt-string-using-bouncy.html

0 投票
1 回答
564 浏览

javascript - JSEncrypt 到 PHP 非对称加密

我正在尝试从客户端到服务器进行非对称加密,客户端拥有公钥,服务器拥有私钥。

在客户端,我在 javascript 中使用 JSEncrypt 来使用我的公钥进行加密。从那里我使用 AJAX 将加密数据发送到我的 PHP 脚本。我尝试用它openssl_private_decrypt()来解密数据,但它总是返回false。我试过告诉它期待不同的填充,即使我确定它是 PKCS1。

有人可以告诉我我做错了什么吗?

以下是所有相关代码:

JAVASCRIPT:

PHP (ajax.php):

priv.php:

我的钥匙:

上市:

-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtzAVRzbQWzZi7wjqA/0m agqlWQfKJhrfnCuytqwNR0rMKk+hGx1c+1YaPsN0ZMdBVWyBWJYWzlCjWOKx1vnY gBb3MPXn1QvGkrv+WtXX3VQRsPjWtjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD 6TnjdVhLMpftPv1ELTWCl2tyzSTP3G2LY4dDVstuhzO8+3R9PaIle7CnVZ/2qSSb HVN4Juzn3zSemjRykoZLoV3VLsHU2Cb3m21tCMWB7BFlChd2cYiXeZamJHaypvK+ 6ZjQgEN7IYeb4ALOIx50WntOC67S29qpG1MZ84TF/OLtVTFWFM+buSCvYpPMMSzS qQIDAQAB -----END PUBLIC KEY -----

私人的:

-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAtzAVRzbQWzZi7wjqA/0magqlWQfKJhrfnCuytqwNR0rMKk+h Gx1c+1YaPsN0ZMdBVWyBWJYWzlCjWOKx1vnYgBb3MPXn1QvGkrv+WtXX3VQRsPjW tjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD6TnjdVhLMpftPv1ELTWCl2tyzSTP 3G2LY4dDVstuhzO8+3R9PaIle7CnVZ/2qSSbHVN4Juzn3zSemjRykoZLoV3VLsHU 2Cb3m21tCMWB7BFlChd2cYiXeZamJHaypvK+6ZjQgEN7IYeb4ALOIx50WntOC67S 29qpG1MZ84TF/OLtVTFWFM+buSCvYpPMMSzSqQIDAQABAoIBAFy/7aYW7Luh98mL O+E1JWP/ a+R9+y374UfTIDM5PafhCSpLEwkFfvSKjdNFZwM3l67Gt17A718amPoC HYT5D1MbTaDugKjvw2S75nbbWuZnEGYIN74eLlo9iwy+7I5MOLG7ApZPT6DNPSoN 1aWdj1zgwHfDcp91KNwBo6k4NJyxIK0xVSvdcnecpndQ611BUicz3mfMUoa+axDg GROs7IQvEyYMru0E2/lZdURJS1uNg+T3kyBs3zINibwNEFsf8V3e90haWlMjc5MW nNFTo4KWPoHZCWIsyMPZfinjEk/5+DKdFFIQAY7YWUhjnu23Qc4oRu4hb+vTFXQt 2FCp2nkCgYEA58QY4zeqhkIPVEWFs/lZDcd/GdwL+/0Dmmm6lUvTQpUG/u0njY9nJOTyvNc+vH3U9FWm3yPKX+HbARC4CMV/x9jU8QIIa0ARcETjh6BQGaEkIReDeXhq X3kwcdSuhqK9nrmp1ocGeIYFGZPrrofJI+1gODCMtdgqt9pbN+8UJxsCgYEAylel rpsFSiAx0bBcZ9kCPHYHpR2kdpcv4iOunpPJLJQ+p0KhCdDA1J7LftlNVS1Pg34W aD3nundbH0D/8B1qnlXvPIDBGOEbnfnKAdf0ti1cznQoBsIzwa56Fcu8MqK9DQXJ AHkmEIdHjPtXjM7fEEuz4kRLjcdirV2T5+KZNYsCgYBCioqaseDDqzO7fjpk8bIf wqc7RXIrZvkh3Dk1pA+DjkXz6yLwAbwbW6BVl3brpzT88Zp3dk8kODQomiQ8YHfP aPG6QFsqb7qSATVSOzTEJv+4gIe+2FOyFZlTFT0GarMGX0fjz+CLue686TtBYLrf FcgKWeYMT4P0RTzrUjj3AQKBgQCf/Rtg6uwMx1X88dCuv/S3r6+ty7ldl39h9Eq+ 0iWwHOtJPzKr2yaNN525h8JQxgnn84tuEvymAHfJR5DW37uMxG/sS/XiYSOADqC+ Qm4YmdeW2ltHtMhNrVKU50nAU9LdeCSNPj1ttjlJ7PY1vOC9Ns5d6xg+W1fXsnUf VZlErwKBgQCLWkrCqsxjKvWBQIE7DgtF5e2eFuuwIWwPODn3uNR7DCrpy7PyBVAd TWrKw+Uu0FmVgEiMWlIWjgse58 /ZaBHXzqU5ScsibshJU/tacG+M1uqxAcyr+p03qkSuqbJ6OqUnOWwATrEFLxt5BVnwLlizp9sPggEIJ6mMdOW9J6wONA== -----结束 RSA 私钥-----

0 投票
1 回答
2166 浏览

encryption - RSA/ECB/PKCS1 Padding & AES/CBC/PKCS5Padding 加密/解密

我有一个 API 可以调用,我必须使用 RSA/ECB/PKCS1 填充和 AES/CBC/PKCS5PADDING 加密我的数据。

步骤1:

第2步:

步骤 3:

第4步:

因此,对于第 1 步,我使用的是JSEncryptjavascript 库。对于第 4 步,我正在使用CrytoJS.AES.encrypt()函数。我很确定我的 JSEncrypt 函数运行良好,因为客户端能够解密它,但客户端无法解密我的数据。我觉得我在使用CryptoJS.

有人可以正确指导我如何使用图书馆。

我正在做的是:

我被告知要PKCS5Padding在 AES/CBC 加密中使用(第 4 步),但似乎AES不支持PKCS5PaddingPKCS7Padding

我认为我将 K​​EY 和 IV 传递给CryptoJS.

任何帮助将不胜感激。

0 投票
0 回答
74 浏览

javascript - 在 JavaScript 中使用 RSA 加密和解密文本

我想使用 Public.pem 和 private.pem 使用 RSA 加密文本

我生成了这些文件openssl

我需要加密javascript(我使用这个库)中的文本仅用于加密。

base64 中的此文本以 C# 发送到服务器,我使用RSACryptoServiceProvider,但我只看到可以使用以下方式加载公钥:

但我需要使用我自己的 private.pem 文件来解密我的文本并在之后使用它。

我怎样才能做到这一点?

0 投票
1 回答
197 浏览

angular - 如何使用我的私钥加密数据并使用 JSEncrypt 使用我的公钥解密?

对于家庭作业,我需要用私钥加密数据并用公钥解密。我正在使用 JSEncrypt,它正在加密我的数据,但是当我尝试解密它时,它返回 false。这是一个关于数字签名的作业。

我试图切换它并用我的公钥加密,这确实有效,但我不想这样做。

(我在不同的函数中加密,而不是在与我解密的函数相同的函数中)

0 投票
1 回答
450 浏览

javascript - 如何使 jse 文件执行编码的 .exe 并静默添加启动?Javascript将文件添加到启动?

我正在制作一个 JSE 文件,它将解码 Base64 编码的 .exe 文件,将其保存到 tmp 文件夹并执行它。但是我需要在每次系统重新启动时将 .exe 文件添加到启动和运行中。我是编码初学者,刚刚用各种开源代码制作了这个程序。

谁能帮助我如何使它自动启动?截至目前,一切正常。当我点击 jse 文件时,它会在后台运行,从解码到安装 exe。但是当我重新启动时,什么也没有发生。

这运行良好,但任何人请帮助我让这个 .exe 文件在重新启动后运行。

0 投票
3 回答
517 浏览

php - 如何使用 travist/jsencrypt 加密的 phpseclib 类 Crypt_RSA 解密数据

我使用带有 nginx、mysql、php7.3 的 linux ubuntu 服务器

  1. 我正在尝试使用公共 rsa 密钥加密消息,该密钥是使用 phpseclib ( http://phpseclib.sourceforge.net/ )在服务器端生成的
  1. 然后我尝试使用生成的密钥通过 JSEncrypt 库(https://github.com/travist/jsencrypt)加密和解密消息,它到目前为止工作
  1. 最后,我尝试使用 phpseclib rsa 实现使用私钥解密 JSEencrypted 消息。期望得到原始未加密的消息,但我得到的只是通知:第 2507 行的 enc/RSA.php 中的解密错误请帮帮我,我试图输入 b64 解码字符串、十六进制字符串,尝试删除斜杠或 + 符号,但没有任何帮助. 指出我正确的方向,请我像个婊子一样卡住。提前致谢!

嘿,纽伯特!感谢您的回答,您确实帮助我弄清楚了我遇到的确切问题:当我使用 crypt.encrypt 函数而不先设置密钥时,它会自己创建一个密钥对,然后自行设置,所以我不会能够使用保存在我的 php 会话中的密钥解密消息。但下一个问题是 crypt.setKey 函数需要的 pem rsa 格式。所以现在我想问你知道如何将 b64 编码的 $rsa 转换为 pem 格式,我试图在 key 的两侧添加相应的行,但它没有帮助。我应该把它分解成 64 字节的行,每行末尾都有“\n”吗?在这里找到了这样的功能