数据加密插件

简介: 数据加密插件

摘要:


   

大部分动态网站都支持从客户端到服务器传递数据,如果传递的数据被别人截取就非常危险,尤其是一些用户名密码之类的。这时候就需要我们在传递数据之前对数据进行加密。现在的加密算法已经有很多了,例如:MD5,SHA-1,SHA-256,AES,Rabbit,MARC4,HMAC等等。下面分享几款前端加密的插件。


braintree.js


它是设计用于与客户端的库。加密库将数据(通常是在一个移动设备或merchant-hosted网站通过表单提交)和加密使用非对称密钥对的公钥提交。在服务器上,使用客户端发送加密数的公钥。


1 var clientSideEncryptionKey = "YOUR_ENCRYPTION_KEY";
2 var braintree = Braintree.create(clientSideEncryptionKey);
3 $(#transaction_form).submit(function() {
4     encryptedForm().submit();
5     return false;
6 });
1.


BurningPig-encryption


使用RSA算法进行加密


1 var rsa = require("./src/rsa.js");
 2 var key = new rsa.Key();
 3 
 4 var message = "All your bases are belong to us.";
 5 console.log("Message:\n"+message+"\n");
 6 
 7 // Generate a key
 8 key.generate(1024, "10001");
 9 console.log("Key:\n");
10 console.log("n:" + key.n.toString(16));
11 console.log("e:" + key.e.toString(16));
12 console.log("d:" + key.d.toString(16));
13 console.log("\n");
14 
15 // Encrypt
16 var encrypted = key.encrypt(message);
17 console.log("Encrypted:\n" + rsa.linebrk(encrypted, 64) + "\n" );
18 
19 // Decrypt
20 var decrypted = key.decrypt(encrypted);
21 console.log("Decrypted:" + rsa.linebrk(decrypted, 64) + "\n");
22 
23 var sig = key.signString(message, "sha256");
24 console.log("String signature: \n" + rsa.linebrk(sig, 64));
25 
26 var pubkey = new rsa.Key();
27 pubkey.n = key.n;
28 pubkey.e = key.e;
29 
30 var verified = pubkey.verifyString(message, sig);
31 
32 console.log("Verfied: " + verified);


MD5


项目中使用的就是这个插件。


1 // quick test
 2 var input1 = "ABC";
 3 var input2 = ["A","B","C"];
 4 var input3 = [0x41, 0x42, 0x43];
 5 alert(faultylabs.MD5(input1) == "902FBDD2B1DF0C4F70B4A5D23525E932");
 6 alert(faultylabs.MD5(input2) == "902FBDD2B1DF0C4F70B4A5D23525E932");
 7 alert(faultylabs.MD5(input3) == "902FBDD2B1DF0C4F70B4A5D23525E932");
 8  
 9 // ArrayBuffer
10 var abuf = new ArrayBuffer(3)
11 var vu8  = new Uint8Array(abuf)
12 vu8[0] = 0x41; vu8[1] = 0x42; vu8[2] = 0x43
13 alert(faultylabs.MD5(abuf) == "902FBDD2B1DF0C4F70B4A5D23525E932")
14  
15 // Typed Array Uint32Array
16 var au32  = new Uint32Array(1)
17 au32[0] = 0xDDCCBBAA 
18 alert(faultylabs.MD5(au32) == "CA6FFBF95B47864FD4E73F2601326304")


crypto.js


是一个综合的库,包含很多算法,MD5,SHA-1,SHA-256,AES,Rabbit,MARC4,HMAC,HMAC-MD5,HMAC-SHA1,HMAC-SHA256,PBKDF2


1 var CryptoJS = require("crypto-js");
2 console.log(CryptoJS.HmacSHA1("Message", "Key"));
1.


sjcl


1 sjcl.encrypt("password", "data")
2 sjcl.decrypt("password", "encrypted-data")
1.


jcryption


在正常情况下,当提交数据时,如果没有SSL数据将使用纯文本的方式发送。jCryption这个jQuery插件能够加密由Forms提交的POST/GET数据。jCryption使用RSA公钥密码算法加密,该项目还提供一个PHP文件来处理数据的解密。


1 $(function() {
2     $("form").jCryption();
3 });
1.


jshashes


jshashes是一个纯JavaScript实现的扩展散列算法。它的目标是提供一个独立的、快速和简单的散列算法解决方案对客户端和服务器端都是JavaScript环境的。包括算法:MD5,SHA-1,SHA-256,SHA-512,HMAC,RIPEMD-160


1 // new MD5 instance
 2 var MD5 = new Hashes.MD5;
 3 // new SHA1 instance
 4 var SHA1 = new Hashes.SHA1;
 5 // new SHA256 instance
 6 var SHA256 =  new Hashes.SHA256;
 7 // new SHA512 instace
 8 var SHA512 = new Hashes.SHA512;
 9 // new RIPEMD-160 instace
10 var RMD160 = new Hashes.RMD160;
11 // sample string
12 var str = 'Sample text!';
13 // output to console
14 console.log('MD5: ' + MD5.hex(str));
15 console.log('SHA1: ' + SHA1.hex(str));
16 console.log('SHA256: ' + SHA256.hex(str));
17 console.log('SHA512: ' + SHA512.hex(str));
18 console.log('RIPEMD-160: ' + RMD160.hex(str));

小结:


  

网上也有很多关于数据加密的,大部分思路是使用非对称加密方法,如果你有好的方法可以多多交流。

相关文章
|
算法 前端开发 安全
API 数据加密方案
API 数据加密方案
|
Web App开发 JavaScript 前端开发
NaCl 更安全、更易用、更快速的开源加密库
NaCl (氯化钠,盐) 是一个易用高速的库,可用于网络通讯、加密揭秘、签名等应用。NaCl 的目标是提供构建保密工具所需要的核心功能。当然,已经有其他库提供这方面的功能。不过 NaCl 在安全性、易用性和速度上都有所提升。
413 0
NaCl 更安全、更易用、更快速的开源加密库
|
10月前
|
算法 安全 数据安全/隐私保护
数据加密
数据加密
111 0
|
搜索推荐 安全 网络安全
网站要不要部署SSL加密?
生活在这个互联网时代,我们每天的衣食住行几乎都离不开互联网,网上购物、点餐、网约车......尤其是近些年来互联网行业的迅猛发展,网络用户的数量呈现激增态势,互联网更是渗透进了我们生活的方方面面。在我们享受着互联网带来的各种便利的同时,使用中的各种潜在的风险和隐患也在不断的增多,用户数据信息的保护也已经成为刻不容缓的问题。
79 0
网站要不要部署SSL加密?
|
前端开发 数据安全/隐私保护
前端加密、解密
前端加密、解密
|
JavaScript 前端开发 数据安全/隐私保护
js前端使用AES加解密及在线解密工具验证
js前端使用AES加解密及在线解密工具验证
510 0
js前端使用AES加解密及在线解密工具验证
|
安全 JavaScript 前端开发
AES加密工具的使用方法
日常开发中,数据请求的加解密是比较常见的场景,因为可以通过抓包软件看到接口请求的数据,甚至修改响应的数据, 客户端实际上接收到的数据并不是服务端返回的真实数据,可能是被修改过的数据,所以数据传输的安全是很必要的。AES是比较常见和常用的一种请求加密方案,AES属于对称加密的一种,优点是对数据没有长度限制,加解密速度快;实现方式简单;缺点是没那么安全:秘钥的传输及保管是个问题,任何一方的秘钥泄漏都将导致数据的不安全。
537 0
密钥生成工具功能详解
说明:  本帖主要是为大家说明一下密钥生成工具的功能的使用方法,以及如何使用工具来处理集成中遇到的一些问题工具下载地址:【点击下载】一、生成密钥的功能 使工具生成密钥需要注意以下几点:   1、密钥生成工具生成密钥可以生成RSA密钥和RSA2密钥,如果是生成RSA密钥 密钥长度就需要选择1024长度的,如果是生成RSA2也就是RSA(256)密钥,那就需要选择2048长度的。
2521 0
|
数据安全/隐私保护
云盘加密支持选择自定义 KMS 密钥
概述 阿里云 2018 年 1 月份上线了云盘加密功能,即在创建实例添加数据盘或者单独创建云盘时可以勾选是否加密,关于云盘加密相关说明,可查看此 文档,但当时所发布的功能默认采用了阿里云自动生成的 KMS 密钥,对于企业自定义加密密钥的需求无法满足,日期发布了选择自定义 KMS 密钥的功能,操作步骤如下(注:目前仅支持香港地域,其他地域正在逐步发布中): 操作步骤 1.
3006 0
|
安全 算法 关系型数据库

热门文章

最新文章