参数加密
❶ 网络请求,post方式参数加密吗
首先来说,目前常用的方式有两种, 浏览器端安全控件,淘宝、银行等均采用该方式,优点是安全系数高,缺点是投资较大; 使用ssl方式完成登陆,安全系数一般,投资较低(需要申请ssl证书) 至于使用js在post前加密从原理上来说是根本没有意义的,...
❷ Md5如何通过四个参数进行加密
你好,你先将abcd连接在一起,然后下面是加密的函数
def md5_passwd(str,salt='123456'):
#satl是盐值,默认是123456
str=str+salt
import hashlib
md = hashlib.md5() # 构造一个md5对象
md.update(str.encode())
res = md.hexdigest()
return res
输入是abcd的连接字符串
❸ 如何加密URL里面的参数
加密不过是想隐藏某些敏感数据而已。如果你的应用非商业性(或要求不高),可以在程序里自己约定,而让他人无法揣测就行。简单、好记、好用,但好破解:)举例:任取10个非数字(甚至汉字),对你的数字进行替换,这样经过系统的 UrlEncode(比如你的汉字为 陛下,那么用 Server.UrlEncode("陛下") 将得到一串类似乱码的玩意),原本你的 Url 为
a.aspx?i=123,
而现在却成了
a.aspx?i=%@#fwaef$@$Afwf 等。
基本看不到 123 的影子。
偷懒点,直接甲乙丙丁取代1234
❹ 我的url里面需要传递一个参数比如<a href="a.jspkk=<%=name%>" 怎么加密
加密JS:---------------------------------------------------------------------
function encrypt(str, pwd)
{
//判断密钥是否为空
if(pwd == null || pwd.length <= 0)
{
alert("请输入密钥");
return null;
}
//得到密钥的字符串的Unicode码
var prand = "";
for(var i=0; i<pwd.length; i++)
{
prand += pwd.charCodeAt(i).toString();
//alert(prand);
}
var sPos = Math.floor(prand.length / 5);//返回小于等于其数值参数的最大整数
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));//返回从字符串转换得到的整数. (charAt返回 String 对象的指定索引处的字符。)
var incr = Math.ceil(pwd.length / 2);//返回数的上限
var mo = Math.pow(2, 31) - 1;//返回基数表达式的指定次幂的值
if(mult < 2)
{
alert("您输入的密钥过于简单或者是长度太短");
return null;
}
var salt = Math.round(Math.random() * 1000000000) % 100000000; //Math.round是四舍五入函数。 Math.random是返回一个伪随机数(0到1之间的double型数)
prand += salt;
while(prand.length > 10)
{
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}
prand = (mult * prand + incr) % mo;
var enc_chr = "";
var enc_str = "";
for(var i=0; i<str.length; i++)
{
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / mo) * 255));
if(enc_chr < 16)
{
enc_str += "0" + enc_chr.toString(16);
}
else
enc_str += enc_chr.toString(16);
prand = (mult * prand + incr) % mo;
}
salt = salt.toString(16);
while(salt.length < 8)salt = "0" + salt;
enc_str += salt;
return enc_str;
}
解密JS:---------------------------------------------------------------------
function decrypt(str, pwd,stu)
{
if(str == null || str.length < 8)
{
alert("您输入的内容过短,请重新输入");
return;
}
if(pwd == null || pwd.length <= 0)
{
alert("请输入密钥");
return;
}
var prand = "";
for(var i=0; i<pwd.length; i++)
{
prand += pwd.charCodeAt(i).toString();
}
var sPos = Math.floor(prand.length / 5);
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos*2) + prand.charAt(sPos*3) + prand.charAt(sPos*4) + prand.charAt(sPos*5));
var incr = Math.round(pwd.length / 2);
var mo = Math.pow(2, 31) - 1;
var salt = parseInt(str.substring(str.length - 8, str.length), 16);
str = str.substring(0, str.length - 8);
prand += salt;
while(prand.length > 10)
{
prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
}
prand = (mult * prand + incr) % mo;
var enc_chr = "";
var enc_str = "";
for(var i=0; i<str.length; i+=2)
{
enc_chr = parseInt(parseInt(str.substring(i, i+2), 16) ^ Math.floor((prand / mo) * 255));
//alert(enc_chr);
enc_str += String.fromCharCode(enc_chr);
//alert(enc_str);
prand = (mult * prand + incr) % mo;
}
return enc_str;
}
encrypt:加密方法。
str:你需要加密的字符串,pwd 密匙 返回的是一串加密的密文。
decrypt:解密方法。使用密匙+密文,得到原来解密的值
❺ url传递参数,base64加密
base64前端加密是为了让传输过程中不让别人直接抓包到明文路径或者密码,但是base64能被反解码到,最好用MD5。另外,在PHP端必定有能识别的模块,要么是反解码,要么就是直接存的就是base64的地址。。简单地说,你这样简单替换肯定是不行的啦
❻ 如何对get的参数进行加密
在asp.net下,可以选择在web.config里加入以下代码对整个网站页面信息进行加密
<configration>
<system.web》
<pages viewStateEncryptionMode="Always"/>
</system.web>
</configration>
对单单一个页面进行加密,那可以在
<%@Page Language="C#" AutoEventWireup="true" CodeFile=....后面添加
ViewStateEncryptionMode
❼ 接口参数加密能防止非法调用吗
他系统要调用这个接口取数据:
如果不做安全处理,任何系统只要知道接口地址和参数即可调用。很可能造成非法调用,造成安全问题。
。
为了安全,可以考虑如下方案:
接口调用时增加一个校验参数:如 mcheck=xxxxx
❽ 如何给url 参数加密啊
从客户端到服务端的参数很难实现加密,在服务端你就可以把参数加密,服务端参数加密就有很多方式了,MD5等,想提高安全性访问的话,你可以了解ssl https
❾ 怎么拼接参数,再把参数加密一下,操作流程
支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏支付宝红包再升级,红包种类更多,金额更大!人人可领,天天可领!长按复制此消息,打开支付宝领红包!汇朔S普5维文泰儒翰竹骏
❿ url参数加密
加密URL参数
插件在访问 Web 程序时,可以使用 Get 方法或 Post 方法提交数据,无论是哪种方法,按照 HTTP 协议的规范,参数总是按照以下格式提交(每对参数名/参数值以“&”号分隔):
参数名1=参数值1&参数名2=参数值2&参数名3=参数值3...
如果您没有使用SSL,所有的参数名和参数值都将以明文的形式通过网络传输到 Web 服务器,显然这种方式是很不安全的,为了保证插件与Web 程序的通讯安全,插件在提交参数前可以对每个参数值使用 Rijndael 加密算法进行加密处理,并使用 Base64 编码转换为可读字符串形式。
Rijndael 加密算法是一种高效的对称加密算法,它是 AES(Advanced Encryption Standard,高级加密算法标准)的实现,在加密和解密时有两个基本参数:初始向量和密钥,Web程序在进行解密时必须使用和插件端设置相同的初始向量和密钥。
下面分别列出了加密和不加密的例子各一个:
a. 不加密:Username=test&Password=123456&ClientIP=192.168.0.200&CurrentTime=2005-07-06+23%3a51%3a29
b. 加密:Username=ZtlBwgvwkS5YV98N9cgO%2fw%3d%3d&Password=vBSchK4dJX7Z2zfUatu9ZQ%3d%3d&CurrentTime=mpNifqRIvBV2xZi3d%2fPli6%2bZwR9BKHs4y6t%2bNS2QIr4%3d
在 Web 程序端必须使用相同的算法来解密各个参数值,具体如何实现取决与您所使用的 Web 程序语言,这就需要您找到特定语言的算法实现。解密一个参数值的过程包括下面三个步骤:
1. 使用 Base64 算法将参数值转换为字节数组;
2. 使用 Rijndael 算法将 1 中得到的字节数组解密得到另一字节数组;
3. 将 2 中得到字节数组用特定的字符集转换成字符串,即得到原始的数据。
插件安装目录下的“GVODClassLib.dll”文件包含了加密和解密的算法实现类 CryptoUtility,它的 Decrypt 方法可以直接将 Base64 编码后的密文解密为原文字符串,如果您的 Web 程序使用的是 asp.net 编写的,可以将该文件拷贝到您 Web 站点的“/bin”目录下,然后按照下面的例子完成解密:
<%@ page language="C#" %>
<%@ import namespace="Com.GVOD" %>
<%
//定义密钥,请改成你加密时使用的密钥
string key = "OEtxF/yyALd2NflVW4KSMspQIozPkSRL+mEdvlBAzUQ=";
//定义初始向量,请改成你加密时使用的初始向量
string iv = "Cz3EXGTEMeIN8PXKFLiZWg==";
//定义密钥长度,请改成你加密时使用的密钥的长度
int keyLength = 256;
//生成 CryptoUtility 类的实例
CryptoUtility util = new CryptoUtility(key, iv, keyLength);
//解密用户名
string username = util.Decrypt(Request["Username"]);
//解密密码
string password = util.Decrypt(Request["Password"]);
//解密其它参数
...
%>