RSA_JS_PHP加密解密
root@DESKTOP-I4OIMJC /cygdrive/e/html/RSA_JS_PHP/openssl/bin
# ./openssl.exe
OpenSSL> genrsa -out rsa_private_key.pem
Loading 'screen' into random state - done
Generating RSA private key, bit long modulus
.....................................................................++++++
......................++++++
e is (0x10001)
OpenSSL> genrsa -out rsa_private_key.pem
Loading 'screen' into random state - done
Generating RSA private key, bit long modulus
...............................................................................................++++++
............++++++
e is (0x10001)
OpenSSL> rsa -in rsa_private_key.pem -noout -modulus
Modulus=C70D43D53EE782B91C10A40873C67C6FD07BBF36B71E692DC3605BFC314A6A07AE5C3B8EACBE1ACC4A6231DE06F626C2DDD47DD68D5BFDC1D3448A8F3C74E8F4DD70E31C4760DB105A40B14245E7F074146E25B9D30DBBA24A1640A261F1240B32D9C323F26FE0F64C91DCAECF40017DD275147FA0D7E15EECD1455D8E8A30EB
login.html
<html>
<head>
<title>RSA Login Test</title>
<meta charset="utf-8">
<script type="text/javascript" src="./js/jsbn.js"></script>
<script type="text/javascript" src="./js/prng4.js"></script>
<script type="text/javascript" src="./js/rng.js"></script>
<script type="text/javascript" src="./js/rsa.js"></script>
<script src="//cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script> <script type="text/javascript">
function cmdEncrypt() {
var passwd = $('#passwd').val();
var rsa = new RSAKey();
var modulus = "B4232EEB8B0177E26CC5F5C8AD2ACB6D0619880F1EF48EF46039C5291FBF5B0525B745753F6C98C5A5410CD1C51B359C57D4FA3590C25F1ACE4EEB41BBE44727140D8F6E3EC39CF89C61A001159544BF64F3AE7D38FA99DF51324112D8CC2BEC8ADB0C17D35D36B7D4954CC5A4AA0A5F1757FDA51B4E0493F653925AC26773FF";
var exponent = "10001";
rsa.setPublic(modulus, exponent);
var res = rsa.encrypt(passwd); $('#passwd').val(res);
}
</script> </head>
<body>
<form action="./login.php" method="post" >
<label for="username">用户名:</label><input type="text" name="username" id="username">
<label for="passwd">密 码:</label><input type="password" name="password" id="passwd">
<input type="submit" value="登录" onclick="cmdEncrypt();">
</form>
</body>
</html>
login.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/3/14
* Time: 9:48
*/
header('Content-type:text/html;charset=utf-8'); //私钥
$private_key = "-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC0Iy7riwF34mzF9citKsttBhmIDx70jvRgOcUpH79bBSW3RXU/
bJjFpUEM0cUbNZxX1Po1kMJfGs5O60G75EcnFA2Pbj7DnPicYaABFZVEv2Tzrn04
+pnfUTJBEtjMK+yK2wwX0102t9SVTMWkqgpfF1f9pRtOBJP2U5Jawmdz/wIDAQAB
AoGAKnSYXF9Yqz6sUEPLVjTd2QY1AkI+E3mV0xAKjdSzruoZp4YxSg94OizmlfTi
tbT+8hx6FCHYDb4tnaAI0BXPRttTAMI+/ErF740cA/kTcXhCu0NbMiAcMGqFqzMG
EQpWvfYmGrWfd9MKIltC7aLknFFiDx9izDfIAfQLBV/706ECQQDX/0XN7cf5uezg
OG71sLzkoZHrrfhideP8wnHVUUk2usve/eF4VdFMx84QSJWMwMd0U5LqXzhrgD/g
eOhd2S1pAkEA1X/APcW4awXD+TUrFVQH18bN0jc2VHsV1hN/aLum4hrWAevsX9UW
ST1qf7lXA8ryqRw1Z2cRJYUuiwQTgd8hJwJAbSJMybyfsrzPQ4cgAUF4X2iHSvZO
rqj0NaylSWvVuzJsedH7DwsFQm8d3bpe3Yw1+r+TVpof7qkRHUDZ3zkxKQJBAL1+
PeqV6zFSVLaD8lFj2/Iwic3jI12oQaFYfOVAaMaWewwJkiscvkMTN8tVfV3oa6id
WOkGGbnrk3vfilDi8lECQDNgYY4gGpo3+rnmPlh8vKuTSzdfn9t4ucpfSswX7Nvs
t8+TtmwnreM7HI7xeh+8s4Q1TmAFVbRkjwwDbDtknP4=
-----END RSA PRIVATE KEY-----"; $hex_encrypt_data = trim($_POST['password']); //十六进制数据
$encrypt_data = pack("H*", $hex_encrypt_data);//对十六进制数据进行转换
openssl_private_decrypt($encrypt_data, $decrypt_data, $private_key); echo '解密后的数据:' . $decrypt_data;
RSA_JS_PHP加密解密的更多相关文章
- PHP的学习--RSA加密解密
PHP服务端与客户端交互或者提供开放API时,通常需要对敏感的数据进行加密,这时候rsa非对称加密就能派上用处了. 举个通俗易懂的例子,假设我们再登录一个网站,发送账号和密码,请求被拦截了. 密码没加 ...
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...
- .NET和JAVA中BYTE的区别以及JAVA中“DES/CBC/PKCS5PADDING” 加密解密在.NET中的实现
场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组. 问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距 分析:平台不 ...
- php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...
- c#和js互通的AES加密解密
一.使用场景 在使用前后端分离的框架中常常会进行传输数据相互加密解密以确保数据的安全性,如web Api返回加密数据客户端或web端进行解密,或者客户端或web端进行加密提交数据服务端解密数据等等. ...
- PHP AES的加密解密
AES加密算法 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...
- [PHP]加密解密函数
非常给力的authcode加密函数,Discuz!经典代码(带详解) function authcode($string, $operation = 'DECODE', $key = '', $exp ...
- 非对称技术栈实现AES加密解密
非对称技术栈实现AES加密解密 正如前面的一篇文章所述,https协议的SSL层是实现在传输层之上,应用层之下,也就是说在应用层上看到的请求还是明码的,对于某些场景下要求这些http请求参数是非可读的 ...
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
原文地址:http://docode.top/Article/Detail/10003 目录: 1..Net(C#)平台下Des加密解密源代码 2..Net(C#)平台下Aes加密解密源代码 3..N ...
随机推荐
- Asp.Net MVC webAPI Token based authentication
1. 需要安装的nuget <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" ta ...
- Objective C - 1 - 实现一个MessageBox.Show
@interface K3ViewController : UIViewController<UIAlertViewDelegate> @end #import "K3ViewC ...
- 诗·想——日记&断章
日记 海子 姐姐,今夜我在德令哈,夜色笼罩 姐姐,我今夜只有戈壁 草原尽头我两手空空 悲痛时握不住一颗泪滴 姐姐,今夜我在德令哈 这是雨水中一座荒凉的城 除了那些路过的和居住的 德令哈... ...
- 类的析构方法__del__
析构方法: 语法: class 类名: def __del__(self): ... 说明: 析构方法在对象被销毁时被自动调用 python建议不要在对象销毁时做任何事情,因为销毁的时间难以确定 cl ...
- Sublime 笔记
1. 安装PackageControl 官网:https://packagecontrol.io/ v2: import urllib2,os,hashlib; h = '2915d1851351e5 ...
- silverlight——获取控件相对位置
事出有因:页面中存在滚动条,然后点击页面按钮时会进行正确性检查,如果出错在控件的位置会出现提示信息,但由于滚动条的出现,有可能在非可视区域内的控件出了问题,但目前是看不见的,因此,考虑获得出问题控件的 ...
- apue 2ed 和 unp 3ed 环境配置
网上虽然有很多配置攻略,但是依然会一头雾水,下面记录我的配置过程. OS. Ubuntu 10.04 LTS 5 首先下载APUE源代码(http://www.apuebook.com/src.tar ...
- java并发--CountDownLatch、CyclicBarrier和Semaphore
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法. 以下 ...
- Cookie简单实例
Cookie简单实例 1.创建CookieServlet package com.servlet.study; import java.io.IOException; import java.io.P ...
- BZOJ1690 Usaco2007 Dec 奶牛的旅行 【01分数规划】
BZOJ1690 Usaco2007 Dec 奶牛的旅行 题目描述 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天.旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得 ...