打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CryptoJS文件加密与解密
import React, { Component } from 'react';
import CryptoJS from 'crypto-js/crypto-js'
import { Button } from 'antd';

class Encryption extends Component {
    constructor(){
        super();
        this.state={
            value2:'qqqqqqqqqqqq',
            encryptioned:'',
            Decrypted:''
        }
    }

    componentDidMount(){

    }

    ///对文件进行加密
    encryption = (e,dataw)=>{
        debugger
        let data = this.state.value2;
        let srcs = CryptoJS.enc.Utf8.parse(data);
        let key = CryptoJS.enc.Utf8.parse('1111111111111111');//Latin1 w8m31 Yy/Nw6thPsMpO5fg==
        let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
        this.setState({encryptioned: encrypted.toString()});
    };
    ///对文件进行解密
    Decrypt=(e,data)=>{
        let word = this.state.encryptioned;///o7H8uIM2O5qv65l2
        let key = CryptoJS.enc.Utf8.parse('1111111111111111');//Latin1 w8m31 Yy/Nw6thPsMpO5fg==
        let decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
        this.setState({Decrypted:CryptoJS.enc.Utf8.stringify(decrypt).toString()});
    };

    render() {
        return(
            <div>
                <p><input value={this.state.value2} type="text"/></p>
                <Button type="primary" onClick={this.encryption.bind(this)}>请输入要加密的内容</Button>
                <br/>
                <h2>
                    加密之后的内容:<span>{this.state.encryptioned}</span>
                </h2>
                <Button type="primary" onClick={this.Decrypt.bind(this)}>对加密文件进行解密</Button>
                <br/>
                <h2>
                    解密之后的内容:<span>{this.state.Decrypted}</span>
                </h2>
            </div>
        )
    }
}
export default Encryption;
这里的密钥是由
 //十六位十六进制数作为密钥偏移量
const CryptoJS = require('crypto-js'); //引用AES源码js const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF"); //十六位十六进制数作为密钥 const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412'); //十六位十六进制数作为密钥偏移量 //解密方法 function Decrypt(word) { let encryptedHexStr = CryptoJS.enc.Hex.parse(word); let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString(); } //加密方法 function Encrypt(word) { let srcs = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); return encrypted.ciphertext.toString().toUpperCase(); } export default { Decrypt , Encrypt }
 
 
来源:http://www.icode9.com/content-4-28721.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
前端 crypto
uniapp 接口加密问题
BurpSuite自动化测试漏洞插件 -- PyCript(1月26日更新)
各种各样加密算法的js库,安全加密不再愁——crypto
Python中AES加密解密源码【原文和密钥均支持中文,密钥长度可自定义(1~30)】
Base64 在线编码解码 | Base64 加密解密
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服