前端生成sign签名
接着上一篇博文写写前端如何生成sign签名,此处生成的签名和前两篇的(sign签名)中验证是一致的,可以对比使用。使用方式在上一篇(vue中post请求使用form表单格式发送数据)中使用过,可参考function getSign(param) {// 获取签名返回一个包含"?“的参数串var appKey = “sbkjCarWebBEIJING”;var securityKey......
·
接着上一篇博文写写前端如何生成sign签名,此处生成的签名和前两篇的(sign签名)中验证是一致的,可以对比使用。使用方式在上一篇(vue中post请求使用form表单格式发送数据)中使用过,可参考
function getSign(param) { // 获取签名 返回一个包含"?"的参数串
var appKey = "sbkjCarWebBEIJING";
var securityKey = "2019sbkjCarWebBEIJINGsbkj";
var timeStamp = formatDate(new Date(),"yyyyMMddHHmmss");
// 判断是否有参数
if(param!=null&¶m.length>0) {
param = "appKey=" + appKey + "&timeStamp=" + timeStamp + "&" + param;
}else {
param = "appKey=" + appKey + "&timeStamp=" + timeStamp
}
return "?appKey="+appKey+"&timeStamp="+timeStamp+"&sign="+calculateSign(param,securityKey);
}
// 生成sign
function calculateSign(param,securityKey) {
var params = param.split("&");
param = params.sort().join("").replace(/=/g,"");
console.info(param);
return sha1(param+securityKey);
}
//格式化日期,
function formatDate(date, fmt) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"H+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
其中sha1()函数是下面js里引用的:
<script src="https://cdn.bootcss.com/js-sha1/0.6.0/sha1.min.js"></script>
如果发现什么问题请留言,毕竟代码都是人写的难免会出错。
更多推荐
已为社区贡献3条内容
所有评论(0)