<
meta charset
=
"UTF-8"
>
<
meta name
=
"viewport"
content
=
"width=device-width, initial-scale=1.0"
>
<
title
>
Document
<
/
title
>
<
script src
=
"./js/querystrings.js"
>
<
/
script
>
<
/
head
>
<
script
>
var
str
=
"一爱我的祖国i like javascript"
;
var
n
=
new
Date
(
)
.
getDate
(
)
;
var
arr
=
[
]
;
for
(
var
i
=
0
;
i
<
str
.
length
;
i
++
)
{
arr
.
push
(
str
.
charCodeAt
(
i
)
^
n
)
;
var
a
=
new
Uint16Array
(
arr
)
;
console
.
log
(
a
)
;
var
xhr
=
new
XMLHttpRequest
(
)
;
xhr
.
addEventListener
(
"load"
,
loadHandler
)
;
xhr
.
open
(
"POST"
,
"http://127.0.0.1:4002/a/"
)
;
xhr
.
send
(
a
)
;
function
loadHandler
(
e
)
{
if
(
xhr
.
readyState
===
4
&&
xhr
.
status
<
400
)
{
<
/
script
>
<
/
body
>
<
/
html
>
后端代码实现
var http=require("http");
var querystring=require("querystring");
var req,res,data,type;
init();
function init(){
var server=http.createServer(createServer);
server.listen(4002,"127.0.0.1",listenHandler);
function createServer(_req,_res){
req=_req;
res=_res;
res.writeHead(200,{
"content-type":"text/plain;charset=utf-8",
"Access-Control-Allow-Origin":"*",
"Access-Control-Allow-Headers":"Content-type",
});
type=req.url.includes("?") ? req.url.split("?")[0].replace(/\//g,"") : req.url.replace(/\//g,"");
req.on("data",dataHandler);
req.on("end",endHandler);
function listenHandler(){
console.log("开启服务");
function dataHandler(_data){
var str="";
var n=new Date().getDate();
for(var i=0;i<_data.length;i+=2){
var a=_data[i+1].toString(16).padStart(2,"0");
var b=_data[i].toString(16).padStart(2,"0");
var s=parseInt(a+b,16);
console.log(s);
str+=String.fromCharCode(s^n);
console.log(str);
data=_data+"";
function endHandler(){
if(req.method.toUpperCase()==="GET"){
data=req.url.includes("?") ? req.url.split("?")[1] : "";
try{
data=JSON.parse(data);
}catch(e){
data=querystring.parse(data);
var obj=data;
if(type==="a"){
res.write(querystring.stringify(obj));
}else if(type==="b"){
res.write(querystring.stringify(obj));
res.end();
^常用于数据加密常常使用日期与数据进行异或 c= a ^ b 可以推出 a = b ^ c. (常用于加密) 异或的运算方法是一个二进制运算: 两者相等为0,不等为1.使用进制形式 防止服务器不是utf8无法解析中文前端代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="
//ajax部分
var data = {user_name:user_name,short_company_name:user_name,mobile:mobile,user_passwd:user_passwd,code:code,city_id:city_id};
getSignature(data)
首先是密钥交换的过程,Diffie-Hellman密钥交换算法参考维基百科的文档:
http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
client端js语言,服务端php语言 用DH密钥交换算法交换密钥。
var g = "2";
var p = "1060250871334882992391
加密密钥通过ajax异步请求发送
文章目录加密密钥通过ajax异步请求发送1.加密函数2.分析ajax异步请求3.获取密钥进行参数加密
最近写一个网页的爬虫,登录时账号密码被进行了加密,加密方式是自设定的,密钥通过ajax异步请求发送,目标站:http://61.187.179.66:8924/
1.加密函数
输入完账号密码之后,当点击登录时,执行了一段加密代码,主要功能是将账号密码字符串进行混...
javascript的api本来就支持Base64,因此我们可以很方便的来进行编码和解码。
var encodeData = window.btoa("name=xiaoming&age=10")//编码
var decodeData = window.atob(encodeData)//解码。
下面来个具体的例子来说明如何对url中参数进行转码,并取得解码后的参数
假如要跳转...
对 URL 进行加密本身并没有什么意义,因为客户端仍然需要使用解密后的 URL 发送请求。而且,加密 URL 可能会导致一些安全问题,因为攻击者可以使用相同的密钥来解密 URL 并进行攻击。
如果你需要对传输的数据进行保护,可以考虑使用 HTTPS 协议来加密整个通信过程。HTTPS 使用 SSL/TLS 加密算法来保护数据的传输,可以有效地防止中间人攻击和窃听等安全问题。在使用 HTTPS 时,URL 中的所有信息都会被加密,不需要对 URL 进行额外的加密处理。