iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现加密与解密详解
  • 830
分享到

JavaScript实现加密与解密详解

2024-04-02 19:04:59 830人浏览 薄情痞子
摘要

目前原生js貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。 一、使用crypto.js库进行加密 GitHub的 https://github

目前原生js貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。

一、使用crypto.js库进行加密

GitHub的 https://github.com/brix/crypto-js 上下载该js。

它可以单独引入所需要加密方式的js;也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式。

用法:

<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
<script type="text/javascript">
    var encrypted = CryptoJS.AES(...);
    var encrypted = CryptoJS.SHA256(...);
</script>

1、举例:

Hash加密:

//加密实例一
  console.log("加密结果一 MD5:"+CryptoJS.MD5("你好")); 
  
//加密实例二  
var pwd="passwor";
console.log("加密结果二 HMac-MD5:   "+CryptoJS.HmacMD5("你好",pwd));

AES对称加密:

普通文本加密

// 加密
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();

// 解密
var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var originalText = bytes.toString(CryptoJS.enc.Utf8);

console.log(originalText); // 'my message'

对象加密

var data = [{id: 1}, {id: 2}]

// 加密
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();

// 解密
var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));

console.log(decryptedData); // [{id: 1}, {id: 2}]

Custom Key and IV

var key = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); //密钥 
var iv  = CryptoJS.enc.Utf8.parse('1234567812345678');
// 加密
var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });

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

Block Modes and Padding

var key  = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');  //密钥 
var iv   = CryptoJS.enc.Utf8.parse('1234567812345678');
var encrypted =CryptoJS.AES.encrypt("Message", ,key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.Pkcs7
        }); //返回的是base64格式的密文

2、api

See: Https://cryptojs.gitbook.io/docs/

编码工具:

var Words = CryptoJS.enc.Base64.parse("SGVsbG8sIFdvcmxkIQ==");
​var base64 = CryptoJS.enc.Base64.stringify(words);
​
var words = CryptoJS.enc.Hex.parse("48656c6c6f2c20576f726c6421");
​var hex = CryptoJS.enc.Hex.stringify(words);
​
var words = CryptoJS.enc.Utf8.parse("");
​var utf8 = CryptoJS.enc.Utf8.stringify(words);

二、使用JavaScript-MD5库进行加密

GitHub的 https://github.com/blueimp/JavaScript-MD5 上下载该js。

举例:

Calculate the (hex-encoded) MD5 hash of a given string value:

var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"
var v1= md5('{"name":"嘻嘻嘻嘻嘻嘻嘻嘻嘻","age":22}'); //56b21847ed32d2d96cf74077b22342eb

Calculate the (hex-encoded) HMAC-MD5 hash of a given string value and key:

var hash = md5('value', 'key') // "01433efd5f16327ea4b31144572c67f6"

Calculate the raw MD5 hash of a given string value:

var hash = md5('value', null, true)

Calculate the raw HMAC-MD5 hash of a given string value and key:

var hash = md5('value', 'key', true)

到此这篇关于JavaScript实现加密与解密详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JavaScript实现加密与解密详解

本文链接: https://www.lsjlt.com/news/150502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实现加密与解密详解
    目前原生JS貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。 一、使用crypto.js库进行加密 GitHub的 https://github...
    99+
    2024-04-02
  • C#实现加密与解密详解
    目录一、Hash加密,使用HashAlgorithm哈希算法类的派生类(MD5、SHA1等)1、使用抽象类HashAlgorithm2、使用抽象类MD53、使用MD5CryptoSe...
    99+
    2024-04-02
  • JavaScript如何实现加密与解密
    这篇“JavaScript如何实现加密与解密”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript如何实现加密与...
    99+
    2023-06-30
  • python密码加密与解密的实现
    目录一、对称加密1.1 安装第三方库 - PyCrypto1.2 加密实现二、非对称加密三、摘要算法3.1 md5加密3.2 sha1加密3.3 sha256加密3.4 sha384...
    99+
    2023-02-07
    python 密码加密 python 密码解密
  • 详解使用Nodejs内置加密模块实现对等加密与解密
    加密与解密是保证通讯安全的一种重要手段,现在加密算法已经有很多,并且都有成熟的软件包可以使用,这就大大降低了应用开发程序员的负担,只需要使用这些第三方提供的加密解密库就可以使用了,在...
    99+
    2024-04-02
  • C#如何实现加密与解密
    这篇文章主要讲解了“C#如何实现加密与解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何实现加密与解密”吧!一、Hash加密,使用HashAlgorithm哈希算法类的派生类(MD5...
    99+
    2023-06-30
  • Rust实现AES加解密详解
    目录一、选择使用 rust-crypto二、Cargo.toml 文件三、工具类1、加密2、解密3、测试样例一、选择使用 rust-crypto rust-crypto 官方相关站点...
    99+
    2022-11-13
    Rust AES加解密 Rust 加密 Rust 解密
  • python基于crypto实现加密与解密
    1.安装crypto库 pip install pycryptodome ps: 使用pip工具安装步骤: 1、直接安装pycryptodome模块即可 pip install pycryptodom...
    99+
    2023-10-10
    python 开发语言
  • 如何实现VBS加密与VBE解密
    这篇文章主要介绍了如何实现VBS加密与VBE解密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Script Encoder加密VBS脚本Script Encoder 是一个...
    99+
    2023-06-08
  • Python实现栅栏密码的加密解密方法详解
    目录1.栅栏密码介绍2.栅栏密码加密3.栅栏密码解密(爆破)4.W型栅栏密码加密1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无...
    99+
    2023-01-16
    Python栅栏密码加密 Python栅栏密码解密
  • 详解PHPlaravel中的加密与解密函数
    目录一:简介二:配置三:使用加密/解密1:加密2:不使用序列化进行加密3:解密Laravel为我们提供了完整的加密方法及加密模式。 我之前一般在加密的时候使用的是我自己写的加密函数,...
    99+
    2022-11-13
    PHP laravel加密 解密 PHP laravel加密 PHP laravel 解密
  • PHP加密函数与解密函数详解
    去网上找了下。 Php常用的加密函数有 MD5加密(不可逆)、Crypt加密(不可逆)、Sha1加密(不可逆)、Urlencode加密(可逆) base64编码加密(可逆) 还是见识...
    99+
    2022-11-13
    PHP 加密 解密函数 PHP 加密函数 PHP 解密函数
  • mybatis中数据加密与解密的实现
    目录1、需求2、解决方案3、使用拦截器方式3.1 定义加密接口3.2 定义加密注解3.3 拦截器加密数据3.4 拦截器解密数据3.5 解密工具类3.6 实体类样例4、使用类型转换器4...
    99+
    2024-04-02
  • JavaScript常规加密技术实现方式详解
    目录Base64加密MD5加密AES加密 当今Web开发中,数据安全是一个至关重要的问题,为了确保数据的安全性,我们需要使用加密技术。JavaScript作为一种客户端编程语言,可...
    99+
    2023-05-16
    JavaScript常规加密技术 JavaScript 加密
  • jquery实现aes加密解密
    随着互联网技术的发展,网络安全问题变得越来越突出。许多网站都要求用户输入敏感信息,如密码等。这些信息往往需要进行加密处理,以保证安全性。AES(Advanced Encryption Standard)是一种流行的加密算法,具有高效、安全、...
    99+
    2023-05-24
  • JavaScript加密库:Crypto-JS加密/PHP解密
    crypto-js是一个纯JavaScript的加密算法类库,可以非常方便的在前端进行其所支持的加解密操作。 本文附带php后端加密解密操作。 一、引入 crypto-js (点击可下载) 二、前端代码 const key ...
    99+
    2023-09-04
    javascript 前端 crypto-js php 加密解密
  • Python实现RSA加密解密
    目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加密技...
    99+
    2024-04-02
  • JAVA实现AES加密,解密
    java提供了加解密工具,可以将字节转成加密字节. 因此在加解密前需要对内容进行转换. 一般情况我们希望以字符串的形式展示加密串 可以将byte[] 转换为base64字符串 也可以转换为16进制字符串 这里提供两个工具类 加密串为base...
    99+
    2023-08-24
    java 数据库 mysql
  • PHP实现RSA加密解密
    目录 安装phpseclib  代码编写 1.依赖引用 2.创建密钥 3.公钥加密 4.私钥解密 总结   安装phpseclib PHP安全通信库phpseclib,可以使用它来操作OpenSSL、GMP、libnaid或mcrypt...
    99+
    2023-09-08
    RSA phpseclib php 非对称加密
  • nodejs 实现3des加密解密
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它非常适合构建高性能的网络应用程序。3DES(Triple Data Encryption Standard)是一种常用的对称加密算法,在数据传输和存储...
    99+
    2023-05-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作