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. Xcode 8 修改项目名

    很麻烦,不想修改了 有个教程,贴一下. From: 大发写字的地方 Xcode8 修改包名(含cocopods)

  2. (效果四)jst如何判断对象是否为空?

    前言:在实现业务逻辑的过程中,很多工程师都会遇到需要判断一个对象,数组是否为空的情景,很多时候我们在请求数据的时候都需要判断请求的对象数据是否为空,如果直接使用,在数据请求为空时,控制台就会报错.因此 ...

  3. Linux服务器运行环境搭建(三)——MySQL数据库安装

    官网:http://www.mysql.com/ 官网下载地址:http://dev.mysql.com/downloads/mysql/ 说明:官网下载页面的“Select Platform” 选择 ...

  4. Linux下iptables介绍

    ptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,outp ...

  5. JAVA多线程----用--进阶--》网络编程2

    import java.io.*; import java.net.*; /** * 服务器端逻辑线程 */ public class LogicThread extends Thread { Soc ...

  6. Android Jni调用浅述

    声明:欢迎转载,转载时请注明出处!http://blog.csdn.net/flydream0/article/details/7371692 1 简述 JNI是Java Native Interfa ...

  7. test20181223

    Written with StackEdit. T1 取石子(stone) Description 有\(n\)堆石子,第\(i\)堆有\(x_i\)个. \(Alice\)和\(Bob\)轮流取石子 ...

  8. BZOJ5298 CQOI2018 交错序列 【DP+矩阵快速幂优化】*

    BZOJ5298 CQOI2018 交错序列 [DP+矩阵快速幂优化] Description 我们称一个仅由0.1构成的序列为"交错序列",当且仅当序列中没有相邻的1(可以有相邻 ...

  9. python笔记-9(subprocess模块、面向对象、socket入门)

    一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值 ...

  10. RSA 每次公钥加密不同结果

    今天服务器端一哥们突然跑过来跟我说:我发现公钥每次加密都不同结果啊? 我说:怎么可能?不同的话,私要怎么解密和验证啊? 然后我屁颠屁颠的试了下,结果发现不论在在线RSA的还是自己公司 利用同一个明文加 ...