分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

CryptoJS文件加密与解密

发布时间:2023-09-06 02:16责任编辑:沈小雨关键词:暂无标签
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 }
 
 

CryptoJS文件加密与解密

原文地址:https://www.cnblogs.com/boonook/p/9721470.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved