RSA 即“非对称加密算法”。它有3个特征:
- 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
- 甲方获取乙方的公钥,然后用它对信息加密。
- 乙方得到加密后的信息,用私钥解密。
在开发应用的时候,你可能会碰到这样的需求:密码不能够明文传输,又无法用 HTTPS 协议。这时就可以用到 RSA 来解决这个需求了。
以下是 JAVASCRIPT 调用 RSA 源码:
var public_key="00b0c2732193eebde5b2e278736a22977a5ee1bb99bea18c0681ad97484b4c7f681e963348eb80667b954534293b0a6cbe2f9651fc98c9ee833f343e719c97c670ead8bec704282f94d9873e083cfd41554f356f00aea38d2b07551733541b64790c2c8f400486fd662a3e95fd5edd2acf4d59ca97fad65cc59b8d10cbc5430c53"; var public_length="10001"; var rsa = new RSAKey(); rsa.setPublic(public_key, public_length); var password = $.trim($('#q_login_tab').find('input[name="password"]').val()); password = rsa.encrypt(password);
我们可以通过浏览器开发人员工具查看密码已经加密。
再来看 PHP 是如何调用 RSA 算法的。
<?php require_once 'rsa.php'; function convert($hexString) { $hexLenght = strlen ( $hexString ); // only hex numbers is allowed if ($hexLenght % 2 != 0 || preg_match ( "/[^\da-fA-F]/", $hexString )) return false; $binString = ''; for($x = 1; $x <= $hexLenght / 2; $x ++) { $binString .= chr ( hexdec ( substr ( $hexString, 2 * $x - 2, 2 ) ) ); } return $binString; } /** * RSA 解密 * */ function decryptPassword($password) { $modulus = '124124790696783899579957666732205416556275207289308772677367395397704314099727565633927507139389670490184904760526156031441045563225987129220634807383637837918320623518532877734472159024203477820731033762885040862183213160281165618500092483026873487507336293388981515466164416989192069833140532570993394388051.0000000000'; $private = '59940207454900542501281722336097731406274284149290386158861762508911700758780200454438527029729836453810395133453343700246367853044479311924174899432036400630350527132581124575735909908195078492323048176864577497230467497768502277772070557874686662727818507841304646138785432507752788647631021854537869399041.0000000000'; $public = "65537"; $keylength = "1024"; $encrypted = convert ( $password ); //hex data to bin data //php encrypt create //$encrypted = rsa_encrypt("vzxcvz bdxf", $public, $modulus, $keylength); //$str= bin2hex($encrypted);//bin data to hex data //$str = $_POST['ciphertext']; //echo $str." "; return rsa_decrypt ( $encrypted, $private, $modulus, $keylength ); } $password = decryptPassword($_POST['password']); ?>
这样,就可以解密出明文的密码了。这里附上 RSA源码,有兴趣的童鞋可以下载,在自己的服务器运行。https://yunpan.cn/cSfKMpfffVFzu 访问密码 1fe5
相关推荐
在给定的"兼容JS和C#的RSA加密解密实例"中,我们关注的是如何在JavaScript(前端)和C#(后端)之间使用RSA进行安全的数据交换。这涉及到两个主要的方面:前端的加密和后端的解密。 前端部分,JavaScript通常用于...
在易语言中调用JSEncrypt库来实现RSA加密解密,可以为易语言的应用增加一层安全防护。 JSEncrypt是一个JavaScript库,由Benjamin van Ryseghem开发,主要用于RSA加密操作,特别适用于前端与后端之间的安全通信。它...
2. 前端JavaScript接收公钥,对用户输入的数据进行RSA加密。 3. 加密后的数据通过HTTP请求发送回服务器。 4. 后端Java接收到加密数据,使用私钥进行解密。 **安全性考虑:** 虽然RSA提供了一种强大的加密方式,但在...
下面我们将详细介绍RSA加密解密的工作原理以及如何在JavaWeb环境中使用。 首先,RSA加密基于大素数因子分解的难题。它生成一对密钥:公钥和私钥。公钥是公开的,任何人都可以获取,而私钥必须保密,只有拥有者知道...
总之,RSA-JS加密和JAVA解密实例展示了非对称加密技术在实际应用中的工作流程,提供了前端加密和后端解密的一种解决方案,确保了敏感信息在传输过程中的安全性。在实际项目中,可以根据需求选择合适的库和工具来实现...
在Java和JavaScript中实现RSA加密,对于处理较长的数据至关重要,因为这两种语言的标准库默认的RSA加密只能处理相对较小的块。这里我们将深入探讨如何在Java和JavaScript中实现超长数据的RSA加密,并解决跨平台兼容...
在微信小程序中,JavaScript可以调用微信小程序提供的API进行加密解密,确保用户数据的安全传输。 6. **微信小程序**是腾讯公司推出的一种轻量级应用开发平台,开发者可以使用JavaScript、WXML和WXSS来编写小程序。...
综上所述,理解并熟练掌握C#和JavaScript中的RSA加密解密技术,对于开发安全的Web应用至关重要。通过上述代码示例,你可以了解如何生成RSA密钥对以及如何在两个语言中进行加密和解密操作。在实际项目中,你需要根据...
3. 前端加密:JavaScript加载公钥,使用`crypto-js`库对敏感数据进行RSA加密。 4. 数据传输:加密后的数据通过HTTP/HTTPS发送到服务器。 5. 后端解密:Java后端接收到加密数据,使用私钥和`Cipher`进行解密。 6. ...
本文将详细介绍一个实际案例:如何在前端使用JavaScript库`jsencrypt`进行RSA加密,并在后端使用Java进行解密。这个功能实现的核心知识点包括RSA算法、`jsencrypt`库的使用以及前后端的交互。 首先,RSA是一种非...
本示例中的"RSA前端加密后端解密.rar"文件可能包含了一个实现这一功能的实例,主要涉及到JavaScript(js)前端加密和Java后端解密的流程。 1. **RSA原理**: RSA是一种基于大素数分解困难性的公钥加密算法,由Ron ...
总结,JavaScript与Java之间的RSA加密解密流程主要包括:前端使用JavaScript的`crypto-js`库加载公钥并加密数据,然后将加密后的数据发送给服务器;服务器端使用`Bouncy Castle`库加载私钥并解密数据。这种机制确保...
非对称加密与对称加密的主要区别在于,它使用一对密钥,即公钥和私钥,来分别进行加密和解密操作。 在RSA系统中,每个人都可以公开自己的公钥,但必须妥善保护私钥,因为私钥是用于解密由公钥加密的信息。这种特性...
JavaScript中,可以使用开源库如`crypto-js`或`node-rsa`来进行RSA加密和解密。`crypto-js`主要处理对称加密,但可以通过Web Cryptography API扩展到非对称加密,而`node-rsa`则专为Node.js环境设计,提供完整的RSA...
"PHP实例开发源码—JavaScript Eval 在线加密解密工具 php版.zip" 这个标题表明这是一个基于PHP的实例项目,主要功能是实现JavaScript代码的在线加密和解密。其中,JavaScript `eval` 函数是关键,它能够执行一个...
在前端开发中,JSEncrypt是一个JavaScript库,它提供了RSA加密的功能,使得前端可以方便地处理加密任务。这个库特别适合于在浏览器环境中,当需要与服务器进行安全通信,但又不能直接暴露敏感信息(如用户密码)的...
在SSM框架中,我们可以使用Java的Java Cryptography Extension (JCE)库来实现RSA加密解密。以下是一些关键步骤: 1. **生成密钥对**:首先,我们需要在服务器端生成一对RSA密钥,这可以通过`java.security....
在提供的"Base64加密解密.html"文件中,很可能包含了一个完整的JavaScript实例,演示了如何使用`btoa()`和`atob()`进行Base64的加密和解密操作。你可以打开这个HTML文件查看具体的代码示例和使用方法。而"李嘉的科研...
`jsencrypt`库是一个JavaScript RSA加密库,支持在浏览器端进行加密操作。该库通常包括以下功能: 1. **密钥生成**:用户可以使用`jsencrypt`库生成RSA密钥对。这包括一个公钥和一个私钥。公钥可以公开,而私钥需要...
同时,node-rsa是一个流行的NodeJS第三方库,专门用于RSA加密解密操作。 RSA加密算法是一种非对称加密算法,它的特点是密钥成对出现,一个公钥一个私钥。公钥用来加密数据,私钥用来解密数据。非对称加密与对称加密...