开发者社区> 凌浩雨> 正文

JavaScript 实现的base64加密、md5加密、sha1加密及AES加密

简介: 1. Base64加密 1). js-base64 2). 安装 npm install --save js-base64 3). 使用 // 加密 var str = Base64.
+关注继续查看

1. Base64加密

1). js-base64
2). 安装
npm install --save js-base64
3). 使用
<!-- npm install --save js-base64 -->
<script type="text/javascript" src="base64.min.js"></script>
<script type="text/javascript">
    // 加密
    var str = Base64.encode("mazaiting");
    console.log("base64 encode: " + str);

    // 解密
    str = Base64.decode(str);
    console.log("base64 decode: " + str);
</script>

2. MD5加密

1). js-md5
2). 安装
npm install js-md5
3). 使用
<!-- npm install js-md5 -->
<script type="text/javascript" src="md5.min.js"></script>
<script type="text/javascript">
    // 加密
    var str = md5("mazaiting");
    console.log("md5 encode: " + str);
</script>

3. sha1加密

1). js-sha1
2). 安装
npm install js-sha1
3). 使用
<!-- npm install js-sha1 -->
<script type="text/javascript" src="sha1.min.js"></script>
<script type="text/javascript">
    // 加密
    var str = sha1("mazaiting");
    console.log("sha1 encode: " + str);
</script>

4. 自定义加解密

<script type="text/javascript">
    // 加密
    var str = compileStr("mazaiting");
    console.log("escape encode: " + str);

    // 解密
    str = uncompileStr(str);
    console.log("escape decode: " + str);

    // 对字符串进行加密
    function encode(code){     
        var c=String.fromCharCode(code.charCodeAt(0) + code.length);  
        for(var i = 1; i < code.length; i++) {        
            c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));  
        }     
    return escape(c);  
    }  

    // 字符串进行解密
    function uncompileStr(code){        
        code = unescape(code);        
        var c = String.fromCharCode(code.charCodeAt(0)-code.length);        
        for(var i = 1; i < code.length; i++) {        
            c += String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i - 1));        
        }        
        return c;
    }  
</script>

5. AES加密

1). aes-js
2). 安装
npm install aes-js
3). 使用

CBC - Cipher-Block Chaining (recommended)

// An example 128-bit key
var key = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ];
 
// The initialization vector (must be 16 bytes)
var iv = [ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,35, 36 ];
 
// 加密
// Convert text to bytes (text must be a multiple of 16 bytes)
var text = 'TextMustBe16Byte';
var textBytes = aesjs.utils.utf8.toBytes(text);
 
var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var encryptedBytes = aesCbc.encrypt(textBytes);
 
// To print or store the binary data, you may convert it to hex
var encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes);
console.log(encryptedHex);
// "104fb073f9a131f2cab49184bb864ca2"
 
// 解密
// When ready to decrypt the hex string, convert it back to bytes
var encryptedBytes = aesjs.utils.hex.toBytes(encryptedHex);
 
// The cipher-block chaining mode of operation maintains internal
// state, so to decrypt a new instance must be instantiated.
var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var decryptedBytes = aesCbc.decrypt(encryptedBytes);
 
// Convert our bytes back into text
var decryptedText = aesjs.utils.utf8.fromBytes(decryptedBytes);
console.log(decryptedText);
// "TextMustBe16Byte"

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
AES加密算法的JAVA实现
最近公司需要,看了看AES对称加密算法,具体原理没有仔细研究还,先说说用法吧,由于能力有限,不足之处请大家多多指教,好了,不说废话了,直接上代码 /** * 加密 * * @param content 需要加密...
784 0
Java使用AES加解密
Java使用AES加解密 目录 1.1生成密钥 1.2密钥的存储 1.3获取存储的密钥 1.4加解密 1.5使用存储的密钥进行加解密示例   AES是一种对称的加密算法,可基于相同的密钥进行加密和解密。
1293 0
MD5加密算法
    MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。     MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串
928 0
⑦云上场景:钉钉,最高加密手段
钉钉架构于阿里云之上,对聊天信息采取了最高的加密强度,甚至搜索引擎的数据格式也都进行了加密处理。
3523 0
RSA与AES混合加密算法的实现
RSA与AES加密算法所产生的密钥数不一样,它们是如何进行加密的呢? 接收方生成RSA密钥对,将其中的RSA公钥传递给发送方(接收方与发送方建立连接是需要认证的,SSL/TLS协议可以确保RSA公钥的安全完整),然后用RSA公钥对AES密钥进行加密,加密后的结果传递给接收方,接收方用RSA私钥解密后,得到AES密钥,最后使用AES密钥解密,从而达到安全互通数据的目的。(如下图所示)
1641 0
+关注
凌浩雨
毕业于贵州大学大数据与信息工程学院,目前是一名移动端工程师,就职于北京乾元大通信息技术有限责任公司。
398
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载