前端加密传输 crypto-js AES 加密和解密

配置:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"></script>
    <script>
    function getAesString(data, key, iv) { //加密
        var key = CryptoJS.enc.Utf8.parse(key);
        var iv = CryptoJS.enc.Utf8.parse(iv);
        var encrypted = CryptoJS.AES.encrypt(data, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return encrypted.toString(); //返回的是base64格式的密文
    }

    function getDAesString(encrypted, key, iv) { //解密
        var key = CryptoJS.enc.Utf8.parse(key);
        var iv = CryptoJS.enc.Utf8.parse(iv);
        var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return decrypted.toString(CryptoJS.enc.Utf8);
    }

    function getAES(data) { //加密
        var key = ‘12345678910Asdfx‘; //密钥
        var iv = ‘12345678910Asdfx‘;
        var encrypted = getAesString(data, key, iv); //密文
        var encrypted1 = CryptoJS.enc.Utf8.parse(encrypted);
        return encrypted;
    }

    function getDAes(data) { //解密
        var key = ‘12345678910Asdfx‘; //密钥
        var iv = ‘12345678910Asdfx‘; //密钥偏移量
        var decryptedStr = getDAesString(data, key, iv);
        return decryptedStr;
    }

    var AES = getAES(‘hello‘);
    var AFTERAES = getDAes(AES);
    console.log(‘加密后:‘ + AES );
    console.log(‘解密后:‘ + AFTERAES );

    </script>
</body>

</html>

  

原文地址:https://www.cnblogs.com/it-xiong/p/10300016.html

时间: 2024-10-08 11:55:35

前端加密传输 crypto-js AES 加密和解密的相关文章

JS和利用openssl的object C加密得到相同的aes加密密文

这是之前接到的一个工作内容,项目原本的登录操作是获得账号和密码以后,对密码进行一遍MD5加密,然后传递账号和密文到cgi文件.在c中获取到账户以后,从数据库中获取到密码,对密码进行一次MD5的加密,然后将该密文与post过来的密文进行对比,进行登录验证.也就是说,虽然进行了一次密码加密,但是在get/post的过程中,该密文是可见的,不符合客户的保密需求. 经过协商以后决定,在传递的过程中不再对密码进行传输,而是将账号与session进行组合,组合成一个新的字符串以后,将密码当做密钥,进行一次A

小编带你简单了解一下加密技术原理:AES加密标准

随着因特网的发展,信息传输及存储的安全问题成为影响因特网应用发展的重要因素.信息安全技术也就成为了人们研究因特网应用的新热点. 信息安全的研究包括密码理论与技术.安全协议与技术.安全体系结构理论.信息对抗理论与技术.网络安全与安全产品等领域,其中密码算法的理论与实现研究是信息安全研究的基础. AES加密标准1977年1月公布的数据加密标准DES(Data Encrption Standard)经过20年的实践应用后,现在已被认为是不可靠的.1997年1月美国国家标准和技术研究所(NIST)发布了

java,php,js;AES 互通加解密

1,Java端(依赖 common-codec jar) [java] view plain copy package com.jiaMi; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; public class AESUtils 

C#调用Crypto++库AES ECB加解密

本文章使用上一篇<C#调用C++类库例子>的项目代码作为Demo.本文中,C#将调用C++的Crypto++库,实现AES和ECB加解密. 一.下载Crypto 1.进入Crypto的官网下载openssl.网址是: https://www.cryptopp.com/. 2.点击“DownLoad”,选择最新的可下载的版本即可.此时我下载的是cryptopp820.zip,如下图所示的. 3.解压 cryptopp820.zip. 4.打开cryptopp820文件夹中的cryptest.sl

Android数据加密之Aes加密

前言: 项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密,今天我们来认识一下aes加密. 什么是aes加密? 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用. 接下来我们来实际看下具体怎么实现: 对于AesUtils类常量简介: private final static String HE

AES加密类

代码: using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Utils { /// <summary> /// AES加密解密 /// </summary> public class AES { #region 加密 #region 加密字符串 /// <summary> /// AES 加密(高级加密标准,是下一代的加密算法标准,

DES加密解密与AES加密解密

目录 [1]AES加密算法和DES加密算法的效率比较[2]AES和DES加密解密代码 随着开发时间的变长,当初认为比较难的东西,现在渐渐也就变的不那么难了!特别对于一些经常很少使用的类,时间长了之后渐渐就陌生了.所以在这里写一些日后可能会用到的加密与解密. 一.AES加密算法和DES加密算法的效率比较: 下面是在网上看到的一段关于“ES加密程序和一个AES加密程序,比较两个程序进行大文件加密的效率”: 实验步骤: 实验结果: 结果分析: 当文件很小时,两个程序加密的时间差不多.但是当文件变大时,

前端登录密码加密传输

目的:防止登录密码名文传输(仅仅只是防止明文传输,加密效果取决于key,而key对于前台是透明的) 方式:前端页面用js加密前端登录密码,采用AES对称加密 一.前端JS加密库crypto-js 因为懒,所以直接引入整个加密库,可以根据所需要的加密算法分别引入,下载地址crypto-js 如果是分别引入,记得别忘记引入核心库core 二.前端页面代码 因为需要加密密码,所以把提交方式换成了ajax AES加密的key为128bit,可以理解为16个字符.key由后端生成并送入前端. <!DOCT

JAVA后台与前端JAVASCRIPT之间AES加密解密互通

调试了一天终于把java后台与javascript之间的AES加密解密成功了,记录一下过程. 后台java解密代码:解码算法及模式为 AES/CBC/PKCS5Padding key与iv要为16位 得到16的字符数组按照16进制编码转化为字符串 public static String encrypt(String content, String key) throws Exception { try { Key keySpec = new SecretKeySpec(key.getBytes