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加密解密的更多相关文章

  1. PHP的学习--RSA加密解密

    PHP服务端与客户端交互或者提供开放API时,通常需要对敏感的数据进行加密,这时候rsa非对称加密就能派上用处了. 举个通俗易懂的例子,假设我们再登录一个网站,发送账号和密码,请求被拦截了. 密码没加 ...

  2. 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输

    Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...

  3. .NET和JAVA中BYTE的区别以及JAVA中“DES/CBC/PKCS5PADDING” 加密解密在.NET中的实现

    场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组. 问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距 分析:平台不 ...

  4. php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密

    PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...

  5. c#和js互通的AES加密解密

    一.使用场景 在使用前后端分离的框架中常常会进行传输数据相互加密解密以确保数据的安全性,如web Api返回加密数据客户端或web端进行解密,或者客户端或web端进行加密提交数据服务端解密数据等等. ...

  6. PHP AES的加密解密

    AES加密算法 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...

  7. [PHP]加密解密函数

    非常给力的authcode加密函数,Discuz!经典代码(带详解) function authcode($string, $operation = 'DECODE', $key = '', $exp ...

  8. 非对称技术栈实现AES加密解密

    非对称技术栈实现AES加密解密 正如前面的一篇文章所述,https协议的SSL层是实现在传输层之上,应用层之下,也就是说在应用层上看到的请求还是明码的,对于某些场景下要求这些http请求参数是非可读的 ...

  9. 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解

    原文地址:http://docode.top/Article/Detail/10003 目录: 1..Net(C#)平台下Des加密解密源代码 2..Net(C#)平台下Aes加密解密源代码 3..N ...

随机推荐

  1. iOS开发之如何在Xcode中显示断点堆栈

    昨天有人问我在Xcode中打断点后怎么查看堆栈,今天就简单的聊聊. 首先解释一下,什么是堆栈? 堆:顺序随意:栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式 ...

  2. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记(完结)

    Week 1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

  3. spring boot入门教程——Spring Boot快速入门指南

    Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...

  4. 10day2

    最多因子数 搜索 [问题描述] 数学家们喜欢各种类型的有奇怪特性的数.例如,他们认为 945 是一个有趣的数,因为它是第一个所有约数之和大于本身的奇数. 为了帮助他们寻找有趣的数,你将写一个程序扫描一 ...

  5. openvpn搭建笔记

    #整理openvpn安装 #1安装上传/下载软件 yum -y install openssh-clients lrzsz #2更新时间 yum -y install ntpdatentpdate t ...

  6. iOS 5 :一个UIPageViewController程序示例

    原文:http://www.techotopia.com/index.php/An_Example_iOS_5_iPhone_UIPageViewController_Application 在Xco ...

  7. iOS 模态框覆盖导航栏

    1.使用window 覆盖 2.试图添加到 如果有一个场景:首页三个tab,要求只覆盖Navigation ,而不影响Tab使用,那么使用window 覆盖就不满足了.      这里我们可以使用如下 ...

  8. verilog中的有符号数理解(转)

    verilog中的有符号数运算 有符号数的计算:若有需要关于有号数的计算,应当利用Verilog 2001所提供的signed及$signed()机制. Ex: input  signed [7:0] ...

  9. mysql 安装(压缩包安装和exe安装)

    1:mysql官网:https://dev.mysql.com/downloads/file/?id=482487 2:压缩包安装:https://www.cnblogs.com/jamespan23 ...

  10. SVN增加文件后,文件无法自动包括在项目中的原因

    当增加文件后,不仅要提交所增加的文件,而且要把项目文件一并提交.不然就会出现其他人虽然能够获取新文件,但是文件不能自动加载到项目中的情况.