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. memcached asp.net

    下载文件 memcached 1.解压缩文件到e:\memcached 2.命令行输入 e:\memcached\memcached.exe -d install' 3.命令行输入 e:\memcac ...

  2. vue-router(二)后代路由

    关键字:router,children ,router-link,router-view,router-link-active 先理解什么是children? 后代路由为某路由中用到router-vi ...

  3. Horizon的本地化

    1. 准备工作 apt-get install gettext horizon源码下载路径 /workspace/horizon/   2. 生成mo文件 django-admin.py makeme ...

  4. linux自学(七)之开始ccentos学习,安装jdk

    上一篇:linux自学(六)之开始centos学习,更换yum源 如果你认真跟着前面操作那么一定都完成相关配置及下载,我们的目的是部署Javaweb项目,需要jdk,mysql,tomcat.那么接下 ...

  5. BZOJ1833 ZJOI2010 count 数字计数 【数位DP】

    BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包 ...

  6. Ubuntu 忘记密码后重置密码

    摘自百度贴吧:http://tieba.baidu.com/p/2869755075 选后会再出现一个选单,让你选取,请选取:root - Drop to root shell prompt 选完后, ...

  7. javascript异常处理。 屏蔽异常

    http://www.cnblogs.com/aqbyygyyga/archive/2011/10/29/2228824.html

  8. echarts tooltips宽度设置

    提示文本太长显示不全,设置宽度后:

  9. kong k8s 安装 以及可视化管理界面

    1. git  clone $ git clone git@github.com:Mashape/kong-dist-kubernetes.git $ cd kong-dist-kubernetes ...

  10. 简单安装MySQL(RPM方式)

    本次测试使用一台ip为192.168.2.21的虚拟机 下边的步骤虽然多,但是跟着命令或者复制粘贴命令即可完成操作,并无难点 1.安装准备 MySQL-server-5.6.35-1.linux_gl ...