如何详细实现JavaScript中的加密与解密算法?

2026-04-03 06:481阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计833个文字,预计阅读时间需要4分钟。

如何详细实现JavaScript中的加密与解密算法?

目前原生JS环境中似乎没有提供MD5计算的相关函数,因此需要自行实现或使用第三方库。以下是一个简化的方案:

1. 自行实现MD5算法:可以通过查阅相关资料,手动实现MD5算法。这种方法需要一定的编程基础,但可以完全掌握MD5的运作原理。

2. 使用第三方库crypto-js:可以通过GitHub下载并引入crypto-js库来实现MD5加密。以下是具体步骤:

- 访问GitHub链接:[https://github.com/brix/crypto-js](https://github.com/brix/crypto-js) - 下载crypto-js库,通常下载其压缩版本以减少文件大小。 - 在HTML文件中引入crypto-js库:

- 使用crypto-js库中的MD5函数进行加密:

javascript var md5=CryptoJS.MD5('需要加密的字符串').toString(); console.log(md5);

这种方式简单易行,且不需要深入了解MD5算法的细节。

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

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

GitHub的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:cryptojs.gitbook.io/docs/

如何详细实现JavaScript中的加密与解密算法?

编码工具:

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的github.com/blueimp/JavaScript-MD5上下载该js。

举例:

Calculate the (hex-encoded)MD5hash 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实现加密与解密详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计833个文字,预计阅读时间需要4分钟。

如何详细实现JavaScript中的加密与解密算法?

目前原生JS环境中似乎没有提供MD5计算的相关函数,因此需要自行实现或使用第三方库。以下是一个简化的方案:

1. 自行实现MD5算法:可以通过查阅相关资料,手动实现MD5算法。这种方法需要一定的编程基础,但可以完全掌握MD5的运作原理。

2. 使用第三方库crypto-js:可以通过GitHub下载并引入crypto-js库来实现MD5加密。以下是具体步骤:

- 访问GitHub链接:[https://github.com/brix/crypto-js](https://github.com/brix/crypto-js) - 下载crypto-js库,通常下载其压缩版本以减少文件大小。 - 在HTML文件中引入crypto-js库:

- 使用crypto-js库中的MD5函数进行加密:

javascript var md5=CryptoJS.MD5('需要加密的字符串').toString(); console.log(md5);

这种方式简单易行,且不需要深入了解MD5算法的细节。

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

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

GitHub的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:cryptojs.gitbook.io/docs/

如何详细实现JavaScript中的加密与解密算法?

编码工具:

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的github.com/blueimp/JavaScript-MD5上下载该js。

举例:

Calculate the (hex-encoded)MD5hash 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实现加密与解密详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。