`
王之子
  • 浏览: 110422 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript 与 PHP 进行 RSA 加密解密实例

阅读更多

RSA 即“非对称加密算法”。它有3个特征: 

 

  1. 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
  2. 甲方获取乙方的公钥,然后用它对信息加密。
  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
  • 大小: 255.3 KB
分享到:
评论

相关推荐

    兼容JS和C#的RSA加密解密实例

    在给定的"兼容JS和C#的RSA加密解密实例"中,我们关注的是如何在JavaScript(前端)和C#(后端)之间使用RSA进行安全的数据交换。这涉及到两个主要的方面:前端的加密和后端的解密。 前端部分,JavaScript通常用于...

    易语言调用JSEncrypt实现RSA加密解密

    在易语言中调用JSEncrypt库来实现RSA加密解密,可以为易语言的应用增加一层安全防护。 JSEncrypt是一个JavaScript库,由Benjamin van Ryseghem开发,主要用于RSA加密操作,特别适用于前端与后端之间的安全通信。它...

    RSA 使用java 和javascript进行加解密

    2. 前端JavaScript接收公钥,对用户输入的数据进行RSA加密。 3. 加密后的数据通过HTTP请求发送回服务器。 4. 后端Java接收到加密数据,使用私钥进行解密。 **安全性考虑:** 虽然RSA提供了一种强大的加密方式,但在...

    javaweb使用rsa加密解密jar包使用rsa进行加密解密。前端使用js和公钥进行加密,

    下面我们将详细介绍RSA加密解密的工作原理以及如何在JavaWeb环境中使用。 首先,RSA加密基于大素数因子分解的难题。它生成一对密钥:公钥和私钥。公钥是公开的,任何人都可以获取,而私钥必须保密,只有拥有者知道...

    VB6.0 RSA/AES/Md5/Base64加密 解密 微信小程序 javascript 通用

    在微信小程序中,JavaScript可以调用微信小程序提供的API进行加密解密,确保用户数据的安全传输。 6. **微信小程序**是腾讯公司推出的一种轻量级应用开发平台,开发者可以使用JavaScript、WXML和WXSS来编写小程序。...

    RSA-JS加密,JAVA解密实例

    总之,RSA-JS加密和JAVA解密实例展示了非对称加密技术在实际应用中的工作流程,提供了前端加密和后端解密的一种解决方案,确保了敏感信息在传输过程中的安全性。在实际项目中,可以根据需求选择合适的库和工具来实现...

    java js RSA加密支持超长加密

    在Java和JavaScript中实现RSA加密,对于处理较长的数据至关重要,因为这两种语言的标准库默认的RSA加密只能处理相对较小的块。这里我们将深入探讨如何在Java和JavaScript中实现超长数据的RSA加密,并解决跨平台兼容...

    C#,JS,RSA生成私密钥并加密解密实例解析

    综上所述,理解并熟练掌握C#和JavaScript中的RSA加密解密技术,对于开发安全的Web应用至关重要。通过上述代码示例,你可以了解如何生成RSA密钥对以及如何在两个语言中进行加密和解密操作。在实际项目中,你需要根据...

    rsa加密,js前端加密,java后端加密

    3. 前端加密:JavaScript加载公钥,使用`crypto-js`库对敏感数据进行RSA加密。 4. 数据传输:加密后的数据通过HTTP/HTTPS发送到服务器。 5. 后端解密:Java后端接收到加密数据,使用私钥和`Cipher`进行解密。 6. ...

    前端使用jsencrypt加密后端使用java RSA解密功能实现源码

    本文将详细介绍一个实际案例:如何在前端使用JavaScript库`jsencrypt`进行RSA加密,并在后端使用Java进行解密。这个功能实现的核心知识点包括RSA算法、`jsencrypt`库的使用以及前后端的交互。 首先,RSA是一种非...

    RSA前端加密后端解密.rar

    本示例中的"RSA前端加密后端解密.rar"文件可能包含了一个实现这一功能的实例,主要涉及到JavaScript(js)前端加密和Java后端解密的流程。 1. **RSA原理**: RSA是一种基于大素数分解困难性的公钥加密算法,由Ron ...

    web 前端 javascript RSA加密提交数据,server端用java解密

    总结,JavaScript与Java之间的RSA加密解密流程主要包括:前端使用JavaScript的`crypto-js`库加载公钥并加密数据,然后将加密后的数据发送给服务器;服务器端使用`Bouncy Castle`库加载私钥并解密数据。这种机制确保...

    RSA算法加密时,前端JSEncrypt加密

    在前端开发中,JSEncrypt是一个JavaScript库,它提供了RSA加密的功能,使得前端可以方便地处理加密任务。这个库特别适合于在浏览器环境中,当需要与服务器进行安全通信,但又不能直接暴露敏感信息(如用户密码)的...

    RSA 加解密 js java

    JavaScript中,可以使用开源库如`crypto-js`或`node-rsa`来进行RSA加密和解密。`crypto-js`主要处理对称加密,但可以通过Web Cryptography API扩展到非对称加密,而`node-rsa`则专为Node.js环境设计,提供完整的RSA...

    PHP实例开发源码—JavaScript Eval 在线加密解密工具 php版.zip

    "PHP实例开发源码—JavaScript Eval 在线加密解密工具 php版.zip" 这个标题表明这是一个基于PHP的实例项目,主要功能是实现JavaScript代码的在线加密和解密。其中,JavaScript `eval` 函数是关键,它能够执行一个...

    SSMRSA前后台加密解密案例

    在SSM框架中,我们可以使用Java的Java Cryptography Extension (JCE)库来实现RSA加密解密。以下是一些关键步骤: 1. **生成密钥对**:首先,我们需要在服务器端生成一对RSA密钥,这可以通过`java.security....

    JS源码 - Base64加密解密实例演示程序类

    在提供的"Base64加密解密.html"文件中,很可能包含了一个完整的JavaScript实例,演示了如何使用`btoa()`和`atob()`进行Base64的加密和解密操作。你可以打开这个HTML文件查看具体的代码示例和使用方法。而"李嘉的科研...

    前台JS和后台Java对应的RSA加解密

    **RSA加密解密原理** RSA(Rivest-Shamir-Adleman)是由三位数学家命名的公钥加密算法,它的核心在于一对密钥:公钥和私钥。公钥是可以公开的,任何人都可以获取;而私钥则需要保密,只有拥有者才能使用。加密时,...

    js加密类,用于在js上进行加密操作,比如RSA加密

    `jsencrypt`库是一个JavaScript RSA加密库,支持在浏览器端进行加密操作。该库通常包括以下功能: 1. **密钥生成**:用户可以使用`jsencrypt`库生成RSA密钥对。这包括一个公钥和一个私钥。公钥可以公开,而私钥需要...

    NodeJS加密解密及node-rsa加密解密用法详解

    同时,node-rsa是一个流行的NodeJS第三方库,专门用于RSA加密解密操作。 RSA加密算法是一种非对称加密算法,它的特点是密钥成对出现,一个公钥一个私钥。公钥用来加密数据,私钥用来解密数据。非对称加密与对称加密...

Global site tag (gtag.js) - Google Analytics