精华内容
下载资源
问答
  • vue+crypto.js请求参数加密解密
    2022-03-25 15:32:06

    vue+crypto.js请求参数加密解密

    更多相关内容
  • URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;
  • 本文给大家分享一段给url参数加密解密的javascript代码,非常的好用,有需要的小伙伴直接拿走吧
  • http 参数加密工具

    2016-12-27 11:17:11
    可以用来参数加密 前端加密 后端解密
  • 主要介绍了Android数据传输中的参数加密代码示例,具有一定参考价值,需要的朋友可以了解下。
  • 接口参数加密+时效性验证+私钥+Https
  • url 请求参数加密

    千次阅读 2021-02-28 16:25:57
    } } /** * 加密函数 * * @param content 加密的内容 * @param strKey 密钥 * @return 返回二进制字符数组 * @throws Exception */ public static byte[] enCryptAndEncode(String content, String strKey) throws ...

    import java.security.SecureRandom;import javax.crypto.Cipher

    import javax.crypto.KeyGenerator;

    import javax.crypto.SecretKey;

    import org.apache.commons.codec.binary.Base64;

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    public class UrlUtil {

    private static final String KEY = "myMw6qPt&3AD";

    private static final Logger LOGGER = LoggerFactory.getLogger(UrlUtil.class);

    public static void main(String[] args) throws Exception {

    String source = "pwd=pwd";

    System.out.println("Excepted:" + source);

    String result = enCryptAndEncode(source);

    System.out.println("加密后:" + result);

    String source_2 = deCryptAndDecode(result);

    System.out.println("Actual:" + source_2);

    String isSuccess = source.equals(source_2) ? "Success" : "fail";

    System.out.println("Result:" + isSuccess);

    }

    public static String enCryptAndEncode(String content) {

    try {

    byte[] sourceBytes = enCryptAndEncode(content, KEY);

    return Base64.encodeBase64URLSafeString(sourceBytes);

    } catch (Exception e) {

    LOGGER.error(e.getMessage(), e);

    return content;

    }

    }

    /**

    * 加密函数

    *

    * @param content 加密的内容

    * @param strKey 密钥

    * @return 返回二进制字符数组

    * @throws Exception

    */

    public static byte[] enCryptAndEncode(String content, String strKey) throws Exception {

    KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

    keyGenerator.init(128, new SecureRandom(strKey.getBytes()));

    SecretKey desKey = keyGenerator.generateKey();

    Cipher cipher = Cipher.getInstance("AES");

    cipher.init(Cipher.ENCRYPT_MODE, desKey);

    return cipher.doFinal(content.getBytes("UTF-8"));

    }

    public static String deCryptAndDecode(String content) throws Exception {

    byte[] targetBytes = Base64.decodeBase64(content);

    return deCryptAndDecode(targetBytes, KEY);

    }

    /**

    * 解密函数

    *

    * @param src 加密过的二进制字符数组

    * @param strKey 密钥

    * @return

    * @throws Exception

    */

    public static String deCryptAndDecode(byte[] src, String strKey) throws Exception {

    KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

    keyGenerator.init(128, new SecureRandom(strKey.getBytes()));

    SecretKey desKey = keyGenerator.generateKey();

    Cipher cipher = Cipher.getInstance("AES");

    cipher.init(Cipher.DECRYPT_MODE, desKey);

    byte[] cByte = cipher.doFinal(src);

    return new String(cByte, "UTF-8");

    }

    }

    展开全文
  • 对request请求参数加密

    千次阅读 2021-03-16 01:11:08
    对原始参数名加前辍标示为加密参数名,传输前对其参数加密。2. 获取时,先检查原始名称是否存在,如果不存在则查找是否有加密前辍的参数名,并对其解密。public class RequestUtil {/**安全名称前辍*/public ...

    原理:

    1. 对原始参数名加前辍标示为加密参数名,传输前对其参数值加密。

    2. 获取时,先检查原始名称是否存在,如果不存在则查找是否有加密前辍的参数名,并对其解密。

    public class RequestUtil {

    /**安全名称前辍*/

    public static final String SAFE_PREFIX = "__";

    /**

    * 转换为安全参数名称

    * @param name

    * @return

    */

    static

    public String toSafeParamName(String name){

    if(null==name || "".equals(name)){

    throw new NullPointerException("name is null");

    }

    return SAFE_PREFIX+name;

    }

    /**

    * 转换为一个安全的字符串参数

    * @param value

    * @param eKey 密钥

    * @return

    */

    static

    public String toSafeStrParam(String value, String eKey){

    return null!=value? DesUtil.encode(value, eKey): value;

    }

    /**

    * 还原(安全转换过的)字符串

    * @param value

    * @param eKey

    * @return

    */

    static

    public String recoveryStr(String value, String eKey){

    if(null != value && value.length()>2){

    return DesUtil.decode(value, eKey);

    }

    return value;

    }

    /**

    * 获取请求字符串参数

    * 依parameter-attribute-session序查找

    * @param request

    * @param name 如果在参数中找不到name的参数,则尝试找SAFE_PREFIX+name

    * @param eKey 密钥

    * @return

    */

    static

    public String getRequestStrParam(HttpServletRequest request, String name, String eKey){

    String name$ = SAFE_PREFIX+name;

    String value=request.getParameter(name);

    if(null == value){

    value = request.getParameter(name$);

    value = recoveryStr(value, eKey);

    }

    if(null == value){

    if(null == (value=(String)request.getAttribute(name))){

    value = (String)request.getAttribute(name$);

    value = recoveryStr(value, eKey);

    }

    }

    if(null == value){

    HttpSession session = request.getSession();

    if(null!=session){

    if(null == (value=(String)session.getAttribute(name))){

    value = (String)session.getAttribute(name$);

    value = recoveryStr(value, eKey);

    }

    }

    }

    return value;

    }

    }

    测试:

    servlet(spring mvc)

    @Controller

    @RequestMapping("/t")

    public class TestController {

    static final String ENC_KEY = "..............";

    @RequestMapping("test1")

    @ResponseBody

    public String test1(HttpServletRequest request){

    String value = RequestUtil.getRequestStrParam(request, "name", ENC_KEY);

    return value;

    }

    }

    生成加密url

    public class Test2 {

    private static String ENC_KEY = "。。。。。。。。。。。。。";

    @Test

    public void t1(){

    String req_name = "name";

    String req_value = "Tom";

    String url = String.format("http://127.0.0.1:8080/t/test1?%s=%s",

    RequestUtil.toSafeParamName(req_name),

    RequestUtil.toSafeStrParam(req_value, ENC_KEY));

    System.out.println(url);

    }

    }

    展开全文
  • http带参数加密访问

    千次阅读 2019-04-09 19:35:38
    有时候我们做项目需要用到HTTP传参,但是带着的参数我们希望密文显示。

    有时候我们做项目需要用到HTTP传参,但是带着的参数在比较敏感的情况下我们是希望密文传输的。下面是代码展示:

    客户端代码(核心部分):

    //需要加密传递的参数
    String param = "usercode=" + userName + "&password=" + passWord;
    //对param进行加密处理
    String spParams = null;
    try {
    	//加密,“bbbbb”是参数在服务端解密的密钥
    	spParams = ThreeDES.crypt(param, "bbbbb",1);
    	}catch(Exception e){
    		e.printStackTrace();
    }
    //进行url转码,避免服务端无法解密。因为参数加密之后会产生一些特殊字符,
    //如果不进行url转码的话,在服务端进行解密很可能失败。
    String sp = java.net.URLEncoder.encode(spParams, "UTF8");
    

    ThreeDES类代码:

    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import java.security.Key;
    import java.security.SecureRandom;
    
    public class ThreeDES {
        public static String crypt(String content,String password,int i){
            try {
                KeyGenerator generator = KeyGenerator.getInstance("AES");
    
                SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
                random.setSeed(password.getBytes());
                generator.init(random);
               // generator.init(new SecureRandom(password.getBytes()));
                Key key = generator.generateKey();
                generator = null;
                if(i == 1){
                    return getEncString(content,key);
                }
                else if(i == 2){
                    return getDesString(content,key);
                }
            } catch (Exception e) {
                return null;
            }
            return null;
        }
        /**
         * 加密String明文输入,String密文输出
         *
         * @param strMing
         * @return
         */
        private static String getEncString(String strMing,Key key) {
            byte[] byteMi = null;
            byte[] byteMing = null;
            String strMi = "";
            BASE64Encoder base64en = new BASE64Encoder();
            try {
                byteMing = strMing.getBytes("UTF8");
                byteMi = getEncCode(byteMing,key);
                strMi = base64en.encode(byteMi);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                base64en = null;
                byteMing = null;
                byteMi = null;
            }
            return strMi;
        }
        /**
         * 解密 以String密文输入,String明文输出
         *
         * @param strMi
         * @return
         */
        private static String getDesString(String strMi, Key key) {
            BASE64Decoder base64De = new BASE64Decoder();
            byte[] byteMing = null;
            byte[] byteMi = null;
            String strMing = "";
            try {
                byteMi = base64De.decodeBuffer(strMi);
                byteMing = getDesCode(byteMi,key);
                strMing = new String(byteMing, "UTF8");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                base64De = null;
                byteMing = null;
                byteMi = null;
            }
            return strMing;
        }
        /**
         * 加密以byte[]明文输入,byte[]密文输出
         *
         * @param byteS
         * @return
         */
        private static byte[] getEncCode(byte[] byteS,Key key) {
            byte[] byteFina = null;
            Cipher cipher;
            try {
                cipher = Cipher.getInstance("AES");
                cipher.init(Cipher.ENCRYPT_MODE, key);
                byteFina = cipher.doFinal(byteS);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                cipher = null;
            }
            return byteFina;
        }
        /**
         * 解密以byte[]密文输入,以byte[]明文输出
         *
         * @param byteD
         * @return
         */
        private static byte[] getDesCode(byte[] byteD,Key key) {
            Cipher cipher;
            byte[] byteFina = null;
            try {
                cipher = Cipher.getInstance("AES");
                cipher.init(Cipher.DECRYPT_MODE, key);
                byteFina = cipher.doFinal(byteD);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                cipher = null;
            }
            return byteFina;
        }
        public static void main(String[] args) {
          //  System.out.println(ThreeDES.crypt("bindMobile=13023130171&fenjihao=107", "bbbbb", 1));
            System.out.println(ThreeDES.crypt("e8fxu2q12DlkgwZHsi9OIZllSF05pGp5svbSEwAh4Gto/tleBleSuKq66Zu5QvVsoteasn0qXvIm\n" +
                    "574UEeXpMmHXO51gzq3ut4LvV4YfYeNZJ07Yh+LYhi39J/FB15Cs8W1iru4V/0MlZqpOsMwuoQg3\n" +
                    "kSkg0BF486q5BMkcsD0=", "bbbbb", 2));
        }
    }
    

    服务端接收参数进行解密(核心代码):

    String sp = ServletActionContext.getRequest().getParameter("sp");
    String singlePointLoginParams = ThreeDES.crypt(sp, "bbbbb",2); //解密
    

    至此,http带参数加密传输功能结束。
    注:首先需要说明的是客户端我是单独开发的一个springboot项目进行参数加密传输,服务端是一个SSH项目(比较老旧的技术)进行响应解密的。不过这都不重要,重要的是实现了,亲测可行(不管是在windows还是linux上面)。在弄这个的过程中我是有踩过坑的,这个坑就是在windows上面没问题,但是部署在linux上面就不行了,原因在于下面这段代码(获取key的值):

    KeyGenerator generator = KeyGenerator.getInstance("AES");
    SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
    random.setSeed(password.getBytes());
    generator.init(random);
    Key key = generator.generateKey();
    

    因为在windows上默认加密解密所获得的key是一样的,所以可以成功。但是linux上则是不一样。上面的代码则是可以让加密解密所产生的key值一样,这样就可以解决问题了。

    展开全文
  • url 传递参数加密问题

    2011-07-08 17:01:10
    url传递参数 加密,,,DEC 加密过程,
  • API 接口加密及请求参数加密

    千次阅读 2019-09-25 14:40:26
    以下是本人用过的几种加密方法的精简版,当然,也可在以下基础上做些处理,如: 参数排序、 随机字符串、 时间戳、 签名等等,同时还可以配合https来使用 ,具体情况看自己的业务需求。 一、签名加密方式...
  • 如何优雅的实现 Spring Boot 接口参数加密解密?

    千次阅读 多人点赞 2021-03-09 14:10:49
    加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和响应数据。不过 SpringMVC 中给我们提供...
  • 微信公众号登录密码参数加密详解

    千次阅读 2020-12-24 14:59:35
    微信公众号登录密码pwd参数加密详解 前言 此参数的加密没有任何难度,适合小白练手学习。 一、打开浏览器开始抓包 输入错误的账号密码,登录。然后找到login字眼的发送包,可以看到密码pwd参数被加密了,我们要...
  • 微信小程序中参数加密解密

    千次阅读 2020-12-10 17:32:00
    常用的方法如下加密:encodeURIComponent(参数) 解密:decodeURIComponent(参数)
  • 在一些针对数据比较敏感的项目中会对客户端与服务端之间交互的数据进行加密处理。在gateway网关服务中处理此项业务需要如何实现呢? gateway中自定义的filter,可以实现对请求前的处理以及返回后的处理。 请求顺序...
  • php接口参数加密

    千次阅读 2019-05-25 10:30:24
    客户端:data加密(json.stringify将json格式对象转化为字符串) php: /** * AES数据加密 * @param type data∗/functionaesEncrypt(data */ function aesEncrypt(data∗/functionaesEncrypt(data) { //加密 ...
  • axios 添加拦截器,请求参数加密

    千次阅读 2020-10-10 14:54:16
    新建request.js文件 import axios from 'axios' import qs from 'qs'; import md5 from 'js-md5' ... let encoded = Base64.encode(JSON.stringify(params)) //字符串转义,加密 let md5Str = md5(md5(enco...
  • 美团账号登录password参数加密逻辑

    千次阅读 2021-12-31 15:55:31
    网站链接 aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2NvdW50L3VuaXRpdmVsb2dpbg== ...所以最后就只剩下了密码加密参数password,先全局搜索下,发现是可以搜索到的,而且发现了一个很熟悉的关键词encr
  • vue+axios使用crypto-js对参数加密

    千次阅读 2020-08-14 15:24:53
    在前后端分离的项目中有的需要提高安全性,会要求对请求参数进行加密。 目前已使用的是对称加密,非对称加密需要网上找非对称加密方式把对称加密的修改应该就差不多。 实现思路:在项目中安装引入crypto-js 依赖,...
  • xx社区 帖子 请求参数加密(nonce)
  • 12306登录password参数加密逻辑

    千次阅读 2021-12-31 15:50:48
    网站链接 aHR0cHM6Ly9reWZ3LjEyMzA2LmNuL290bi9yZXNvdXJjZXMvbG9naW4uaHRtbA== (base64解密后可见) ...这个encrypt_ecb()函数应该就是加密函数,传的两个参数如下,一个是密码的明文,一个是固定值 进到函数内,
  • 简单的asp参数加密解密技术
  • springboot通过AOP使接口参数加密&解密

    千次阅读 2019-09-17 13:12:24
    1.通过AOP在每个接口请求之前将前端传来的加密数据进行解密,将解密后的参数通过反射赋值给接口参数上。将接口返回的结果值进行加密返回个前端。 import com.alibaba.fastjson.JSON; import ...
  • url中的参数加密

    万次阅读 2017-04-17 10:47:27
    name="+"参数aaa"’但是我们直接这样传输会有一些问题,我们通常会进行加密,下面介绍一个很简单的加密方式,先把文档地址放上crypto-js 我们首先在页面中引入js,<script type="text/javascript" src="/js/tools/c
  • 墨者靶场SQL注入(参数加密AES)

    千次阅读 2021-12-08 00:49:15
    墨者靶场sql注入 带参数加密 aes
  • 这把钥匙就是我上文说到的参数加密规则,有了这个规则就能调用。 这有安全问题啊,这里面的某个成员如果哪个不小心丢了钥匙或者被人窃取,掌握钥匙的人是不是也可以来掉用接口了呢?而且他可以复制很多钥匙给...
  • js页面跳转 地址栏参数加密解密

    千次阅读 2019-03-26 17:40:25
    1、跳转页面,参数加密 使用window自带加密算法: window.location.href = url+btoa(encodeURIComponent("stuid="+stuid+"&name="+name+"&head="+head)); 2、获取地址栏参数并解密: //获取地址栏里...
  • AES参数加密解密方法

    千次阅读 2019-05-24 10:30:45
    function jiami(){ $userIds = input('userid'); $key = input('key');//自定义秘钥例如 001,abc $userId = $this->encrypt(intval($userIds), $key);...传参数时,可通过多种秘钥进行加密
  • 接口传递参数加密

    千次阅读 2018-08-09 11:01:00
    最近,一个接口需求,给用户开发一个接口,其中所传递的参数有:appid,appsecret不能直接用明文传递,所以想到了对称加密,查阅相关资料之后,决定用aes加密加密方法如下: /** * 加密 * @param $id * @...
  • URL参数加密解密(java版)

    热门讨论 2008-09-23 18:03:13
    URL参数加密解密(java版)URL参数加密解密(java版)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 413,583
精华内容 165,433
关键字:

参数加密