精华内容
下载资源
问答
  • cryptoJS 安装与使用

    万次阅读 2018-10-28 15:40:39
    在线文档 ... 安装 npm install crypto-js #安装之后看到node_modules目录直接放到public目录下 使用 #主要引入以下这个文件 crypto-js/crypto-js.js 示例 #js端 function ...

    在线文档

    安装

    npm install crypto-js
    #安装之后看到node_modules目录直接放到public目录下
    

    使用

    #主要引入以下这个文件
    crypto-js/crypto-js.js
    

    示例

    #js端
    function secret(string, code, operation) {
            code = CryptoJS.MD5('contentDocuments').toString();
            code2 = CryptoJS.MD5('contentWindowHig').toString();
            var iv = CryptoJS.enc.Utf8.parse(code.substring(0, 16));
            var key = CryptoJS.enc.Utf8.parse(code2.substring(0,16));
            if (operation) {
                return CryptoJS.AES.decrypt(string, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
            }
            return CryptoJS.AES.encrypt(string, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            }).toString();
        }
    # php端
    public static function secret($string,$code,$operation=false){
            $code = md5('contentDocuments');
            $code2 = md5('contentWindowHig');
            $iv = substr($code,0,16);
            $key = substr($code2,0,16);
            if($operation){
                return openssl_decrypt(base64_decode($string),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);
            }
            return base64_encode(openssl_encrypt($string,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));
        }
    

    自己封装

    class AesSecurity
    {
        /**
         * method 为AES-128-CBC时
         * @var string传入要加密的明文
         * 传入一个16字节的key
         * 传入一个16字节的初始偏移向量IV
         */
        private static $method = 'AES-128-CBC';
        private static $key = 'contentWindowHig';
        private static $options = OPENSSL_RAW_DATA;
        private static $iv = 'contentDocuments';
    
        public static function getKey()
        {
            return self::$key;
        }
        public function __construct()
        {
            self::$key = md5(self::$key,true);
        }
    
        public static function setMethod($method){
            self::$method = $method;
        }
        public static function setKey($key){
            self::$key = $key;
        }
        /**
         * @param $options 可取值 OPENSSL_ZERO_PADDING OPENSSL_RAW_DATA
         */
        public static function setOptions($options){
            self::$options = $options;
        }
    
        public static function _encrypt($input){
            $key = substr(md5(self::$key),0,16);
            $iv = substr(md5(self::$iv),0,16);
            $data = base64_encode(openssl_encrypt($input,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));
            return $data;
        }
    
        /**
         * @param $input
         * @return bool|string
         * todo rtrim
         */
        public static function _decrypt($input){
            $key = substr(md5(self::$key),0,16);
            $iv = substr(md5(self::$iv),0,16);
            $data = openssl_decrypt(base64_decode($input),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);
            return $data;
        }
        
    }
    
    #js端
    <script type="text/javascript" >
        var key_base = 'contentWindowHig';
        var iv_base = 'contentDocuments'
        var key_hash = CryptoJS.MD5(key_base).toString();
        var iv_hash = CryptoJS.MD5(iv_base).toString();
        var key = CryptoJS.enc.Utf8.parse(key_hash.substr(0,16));
        var iv = CryptoJS.enc.Utf8.parse(iv_hash.substr(0,16));
        function _decrypt(string) {
            var data = CryptoJS.AES.decrypt(string, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
            return data;
        }
        function _encrypt(string) {
            var data = CryptoJS.AES.encrypt(string, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            }).toString();
            return data;
        }
    
        var a = _encrypt('msgg');
        var b = _decrypt(a);
        var c= _decrypt('evD5EE8QGSWpuqzhDFaamw==')
        console.log(a);
        console.log(b);
        console.log(c);
    </script>
    
    展开全文
  • CryptoJS 加密的使用方法

    万次阅读 2017-12-06 23:26:37
    因为公司的项目中用到了接口加密解密,所以百度了一下前端JS加密相关的文章,发现谷歌的CryptoJS挺好用的,因为项目用的是vue框架,记录一下项目中使用经验:首先使用npm安装CryptoJSnpm install crypto-js引用...

    因为公司的项目中用到了接口加密解密,所以百度了一下前端JS加密相关的文章,发现谷歌的CryptoJS挺好用的,因为项目用的是vue框架,记录一下项目中使用经验:

    首先使用npm安装CryptoJS

    npm install crypto-js

    引用

    import CryptoJS from 'crypto-js/crypto-js'

    在此我引用的是总文件,如果只是用到个别的加密方式,可以单独引用对应的加密JS文件;

    加密代码实现

    项目中需要将所有传到后台的参数分5个步骤处理:

    第一步:排序
    第二步:将排序好的参数进行MD5加密作为接口的签名
    第三步:将排序好的参数和接口签名拼接上进行AES加密
    第四部:将AES加密后的密文Base64加密
    第五步:将最终的密文encodeURIComponent;

    代码如下:

    function encryption(data) {
        let strs=[];
        for(let i in data){
            strs.push(i+'='+data[i]);
        }
        strs.sort();  // 数组排序
        strs=strs.join('&'); // 数组变字符串
        let endData=strs+'&sign='+CryptoJS.MD5(strs+'ADfj3kcadc2349akvm1CPFFCD84f')
        .toString(); // MD5加密
        let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81"); // 加密秘钥
        let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");  //  矢量
        let encryptResult = CryptoJS.AES.encrypt(endData,key, {   //  AES加密
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7  // 后台用的是pad.Pkcs5,前台对应为Pkcs7
        });
        return encodeURIComponent(CryptoJS.enc.Base64.stringify(encryptResult.ciphertext));  // Base64加密再 encode;
    }

    加密最终的密文拼接在接口地址后面,请求接口。后台返回的数据也是密文;解密方法如下:

    function decryption(data) {
        let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81");  // 加密秘钥
        let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");   //  矢量
        let baseResult=CryptoJS.enc.Base64.parse(data);   // Base64解密
        let ciphertext=CryptoJS.enc.Base64.stringify(baseResult);     // Base64解密
        let decryptResult = CryptoJS.AES.decrypt(ciphertext,key, {    //  AES解密
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        let resData=decryptResult.toString(CryptoJS.enc.Utf8).toString();
    
        return JSON.parse(resData);
    
    }
    备注:因为后台返回的数据是json格式;所以做种return的时候使用JSON.parse();如果解密的目标为字符串,比如说需要解密的是一个加密的token值。那就要做相应的改动:
    function decryption(data) {
        let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81");  // 加密秘钥
        let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");   //  矢量
        let baseResult=CryptoJS.enc.Base64.parse(data);   // Base64解密
        let ciphertext=CryptoJS.enc.Base64.stringify(baseResult);     // Base64解密
        let decryptResult = CryptoJS.AES.decrypt(ciphertext,key, {    //  AES解密
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return CryptoJS.enc.Utf8.stringify(decryptResult)
    
    }

    因为项目比较赶,这个加密解密的过程虽然捣鼓出来了,但是还有很多东西不求甚解,以后会细致研究该加密方式的使用方法,再做补充。

    展开全文
  • angular6引入CryptoJS,使用HmacSHA1加密

    千次阅读 2019-03-28 13:59:10
    1.npm安装CryptoJS npm install crypto-js 2.在项目中引用 import CryptoJS from 'crypto-js' //注意,没有{ } getSign() { var data = new Date().getTime() var value = "123456"; var key = "GBSJSNKKM@...

    1.npm安装CryptoJS

    npm install crypto-js
    

    2.在项目中引用

    import CryptoJS from 'crypto-js'  //注意,没有{ }
    
    getSign() {
        var data = new Date().getTime()
        var value = "123456";
        var key = "GBSJSNKKM@hsdjdkmmkklcld"
        var sha1_result = CryptoJS.HmacSHA1(value, key).toString(CryptoJS.enc.Hex);
        return sha1_result;
    }
    

    也可以在项目中如下引用

    import sha256 from 'crypto-js/sha256';
    import hmacSHA512 from 'crypto-js/hmac-sha512';
    import Base64 from 'crypto-js/enc-base64';
    
    const message, nonce, path, privateKey; // ...
    const hashDigest = sha256(nonce + message);
    const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
    
    展开全文
  • vue 引入cryptoJS进行AES加密

    千次阅读 2020-10-19 17:55:25
    在做前端开发的时候,页面上有很多的地方是需要用户输入信息的,但是... 通过npm引入cryptoJS npm install crypto-js --save-dev 二.在utils的文件夹下,创建一个js文件,这里叫cryptoAES.js,目录结构如下: ...

          在做前端开发的时候,页面上有很多的地方是需要用户输入信息的,但是有些信息又很敏感,比如客户的姓名、电话号码、身份证号码、银行卡号及密码等等这些,如果没有进行加密处理,很容易被别人截取到,项目中应用到cryptoJS的AES模式加密,简单整理如下:

          一. 通过npm引入cryptoJS

               npm install crypto-js --save-dev

          二.在utils的文件夹下,创建一个js文件,这里叫cryptoAES.js,目录结构如下

         三. 实现AES加密方法

             a.先引入cryptoJS

                import CryptoJs from 'crypto-js'

             b.添加加解密方法,代码如下

    import CryptoJs from 'crypto-js'
    
    export default {
      /**
       * 加密
       */
      encrypt(word) {
        let key = CryptoJs.enc.Utf8.parse("1234567890ABCDEF");
        let srcs = CryptoJs.enc.Utf8.parse(word);
        let encrypted = CryptoJs.AES.encrypt(srcs, key, {
          mode: CryptoJs.mode.ECB,
          padding: CryptoJs.pad.Pkcs7
        });
        return encrypted.toString();
      },
    
      /**
       * 解密
       */
      decrypt(word) {
        let key = CryptoJs.enc.Utf8.parse("1234567890ABCDEF");
        let decrypt = CryptoJs.AES.decrypt(word, key, {
          mode: CryptoJs.mode.ECB,
          padding: CryptoJs.pad.Pkcs7
        });
        return CryptoJs.enc.Utf8.stringify(decrypt).toString();
      }
    
    }

         四. 引入加密方法

              a.在需要的组件中,引入加密文件即可,引入如下

                 import cryptoAES from './cryptoAES'

              b.调用加密方法

    // 前端密码进行AES加密传输
        let password = vm.form.password;
        password = cryptoAES.encrypt(password);

         

           需要注意的地方有几点:(1)加密的秘钥的长度必须是8的整数倍,如果不是,解码的结果为空;(2)我们加密的可能会是字符串或者一个对象,所以加密时得做判断先,方法已经写好了,注意下就行了;(3)实际开发肯定是前后端一起的,所以前后端统一秘钥进行加解密即可,后端采用了java的解密方法;(4)项目环境中,在代码编译阶段产生ES5、ES6编译冲突,需要根据具体场景解决。

           参考文章:

                         前后端AES加密解密,前端使用CryptoJS,后端Java实现

                         vue 中引入cryptoJS

     

    展开全文
  • 官方API:...1、vue项目中安装CryptoJS npm install crypto-js --svae-dev 2、新建js文件,封装公共方法 import CryptoJS from 'crypto-js' // 引入crypto export default { ...
  • npm install crypto-js --save-dev 或 cnpm install crypto-js --save-dev 2.编写工具类 import CryptoJS from 'crypto-js/crypto-js' // 默认的 KEY 与 iv 如果没有给 const KEY = CryptoJS.enc.Utf8.parse("_...
  • CryptoJS加密使用

    2021-06-04 11:17:02
    在项目上npm安装crypto-js npm install crypto-js
  • 前端使用vue + ElementUi 后端使用 ... vue前端: npm安装CryptoJS: npm install crypto-js --save js 引用: import CryptoJS from 'crypto-js/crypto-js' 加密函数: const KEY = "QQAZSESZWSDEFRTG...
  • npm install cryptojs usage (example with coffee-script) Crypto = (require 'cryptojs').Crypto key = '12345678' us = 'Hello, 世界!' mode = new Crypto.mode.ECB Crypto.pad.pkcs7 ub = Crypto.charenc.UTF...
  • CryptoJS加密

    2020-12-15 17:21:01
    CryptoJS加密 CryptoJS官网 写好的加密工具类可以直接用 /** * 工具类 */ import Vue from 'vue' import CryptoJS from 'crypto-js' class mi {//加密 encrypt(word, keyStr){ keyStr = keyStr ? keyStr : '...
  • $ npm install browserify-cryptojs 与 Browserify 一起使用 window . CryptoJS = require ( 'browserify-cryptojs' ) ; require ( 'browserify-cryptojs/components/enc-base64' ) ; require ( 'browserify-...
  • crypto-js npm

    2018-12-16 01:52:24
    crypto-js npm安装包,用于AES加密的crypto-js 的npm
  • js 解密插件 CryptoJS

    2021-08-11 17:27:33
    安装npm i crypto-js -s react按需引入: 创建解密函数: secret = (string: string, code: string, operation: boolean) => { code = CryptoJS.MD5(code).toString(); const iv = CryptoJS.enc.Utf8....
  • CryptoJS 加密base64

    千次阅读 2019-07-17 10:59:55
    CryptoJS提供了各种加密解密。 npm下载包: npm install crypto-js --save-dev let words = CryptoJS.enc.Utf8.parse(this.userpwd); // 加密 let base64 = CryptoJS.enc.Base64.stringify(words); //base64...
  • cryptojs完整代码

    2016-03-17 13:48:24
    cryptojs 是一个js 加密的类库 
  • CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括: ...在cmd命令行下输入安装命令:npm install crypto-js 2)引用 import CryptoJS from 'crypto-js/crypto-js'...
  • 前端加密js库--CryptoJs

    2020-09-21 10:16:32
    1.使用npm安装 $ npm install crypto-js 2.在until文件下新建crypto.js文件,粘贴下列代码: import CryptoJS from "crypto-js"; //密钥 const key = CryptoJS.enc.Utf8.parse("1234567890000000"); //16位 //加密...
  • python模拟CryptoJS.AES.decrypt解密

    千次阅读 2020-09-28 16:25:44
    python模拟CryptoJS.AES.decrypt思路:...3.使用npm安装crypto-js库 4.讲crypto-js库放入安装的node_modules文件夹下 需求 已知加密后文本和密钥反推出原始文本 text = 'A3ReBKoR6IDZSR4Jdxq72fXPsnWTZMhOr5sXl/lJ8/3G
  • npm下载:npm install crypto-js 使用其中的crypto-js.js文件 解析数据 // 转为字节数组 var wordArray = CryptoJS.enc.Utf8.parse(utf8String); var wordArray = CryptoJS.enc.Hex.parse(hexString); var ...
  • npm install vue-cli --save npm ERR! code E404 npm ERR! 404 Not Found: vue-cli@latest <p>npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\asus\AppData\...
  • npm i crypto-js -s 引入 import CryptoJS from 'crypto-js' 封装一个加密函数.AES加密需要这三个参数需要加密的原文,秘钥,偏移量,并且模式和填充需要保持和后台一致,本人使用的是EBC模式和Pkcs5的填充方式,有为...
  • cryptojs的再封装,对微信小程序支持非常友好。支持各种加密算法,支持string,byte,base64结果。
  • cryptojs的使用

    千次阅读 2018-02-27 20:38:00
    项目中经常会遇到加密解密的需求,这里有一...首先,安装js库 npminstallcrypto-js --save 然后,在项目中使用 以下以des加密为例 // 加载核心加密库var CryptoJS = require("crypto-js");// 加载des算法var triple...
  • 常用的加密方式有MD5, Base64, CryptoJS的 AES DES等。下面介绍我常用的几种加密方法的使用: MD5加密 1. 安装模块 ts-md5 $ npm install ts-md5 --save 2. 使用md5进行加密 import { Md5 } from 'ts-md5'; //...
  • npm install vue-cryptojs 并在您的输入文件中: import Vue from 'vue' import VueCryptojs from 'vue-cryptojs' Vue . use ( VueCryptojs ) 用法: 此包装绑定CryptoJS到Vue或this ,如果您使用单个文件的组成...
  • react CryptoJS前端加密

    千次阅读 2019-12-12 15:24:54
    首先安装 npminstallcrypto-js --save var CryptoJS = require("crypto-js"); export default function encryption (params){ let { data, type, param, key } = params; ...
  • 使用cryptoJS进行数据加密后台进行交互 在项目开发中经常会遇到敏感数据传递给后台,在传输的过程中为了防止数据没劫持,关键的数据经常需要用于加密传输,然后在后端进行解密操作处理验证,一般...第一种通过npm安装...
  • 1.npm installcrypto-js 加密: // AES加密 const key = CryptoJS.enc.Utf8.parse('reHlsdCrUOMeBIYiVtWEhJ3Q==') // 将密钥转Utf8 const val = ‘123456’ const srcs = CryptoJS.enc.Utf8.parse(JSON....
  • vue 中引入cryptoJS

    千次阅读 2019-05-09 10:58:00
    页面上有很多的地方是需要用户输入信息的,但是有些信息又很敏感,比如客户的姓名、电话号码、身份证号码、银行卡号及密码等等这些,如果没有进行加密处理,很容易被别人截取到,项目中应用到cryptoJS的AES模式加密...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 657
精华内容 262
关键字:

cryptojsnpm安装