数据加密插件

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

摘要:

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

  1. 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 });

     

  2. 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);

     

  3. 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")

     

  4. 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"));

     

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

     

  6. jcryption
    ​在正常情况下,当提交数据时,如果没有SSL数据将使用纯文本的方式发送。jCryption这个jQuery插件能够加密由Forms提交的POST/GET数据。jCryption使用RSA公钥密码算法加密,该项目还提供一个PHP文件来处理数据的解密。
    1 $(function() {
    2     $("form").jCryption();
    3 });

     

  7. 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));

     

 

小结:

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

  另外附上两个在node.js环境上加密解密的插件:

  https://github.com/gwjjeff/cryptojs

  https://github.com/cyphrd/crypto

相关文章
|
2月前
|
存储 移动开发 安全
Flutter加固原理及加密处理
Flutter加固原理及加密处理
46 0
|
算法 前端开发 安全
API 数据加密方案
API 数据加密方案
|
8月前
|
存储 安全 JavaScript
cookie使用说明和安全性问题
cookie使用说明和安全性问题
97 0
|
9月前
|
云安全 存储 安全
构建强大的云安全基础:认证、加密与网络防护
本篇深入剖析了云安全的基础要素,重点探讨了认证、授权与访问控制、数据加密与隐私保护,以及网络与防火墙配置等关键主题。我们首先介绍了身份验证与单一登录(SSO)的重要性,并提供了使用Flask进行SSO的示例代码。随后,我们强调了角色与权限管理在保障资源安全上的作用,还介绍了云供应商提供的访问控制工具。
75 1
|
11月前
|
算法 安全 数据安全/隐私保护
数据加密
数据加密
112 0
|
搜索推荐 安全 网络安全
网站要不要部署SSL加密?
生活在这个互联网时代,我们每天的衣食住行几乎都离不开互联网,网上购物、点餐、网约车......尤其是近些年来互联网行业的迅猛发展,网络用户的数量呈现激增态势,互联网更是渗透进了我们生活的方方面面。在我们享受着互联网带来的各种便利的同时,使用中的各种潜在的风险和隐患也在不断的增多,用户数据信息的保护也已经成为刻不容缓的问题。
81 0
网站要不要部署SSL加密?
|
JavaScript 前端开发 数据安全/隐私保护
js前端使用AES加解密及在线解密工具验证
js前端使用AES加解密及在线解密工具验证
532 0
js前端使用AES加解密及在线解密工具验证
|
算法 JavaScript 前端开发
数据加密插件
数据加密插件
|
Oracle 关系型数据库 数据安全/隐私保护
加密管理解决方案
本文研究全球及中国市场加密管理解决方案现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
密钥生成工具功能详解
说明:  本帖主要是为大家说明一下密钥生成工具的功能的使用方法,以及如何使用工具来处理集成中遇到的一些问题工具下载地址:【点击下载】一、生成密钥的功能 使工具生成密钥需要注意以下几点:   1、密钥生成工具生成密钥可以生成RSA密钥和RSA2密钥,如果是生成RSA密钥 密钥长度就需要选择1024长度的,如果是生成RSA2也就是RSA(256)密钥,那就需要选择2048长度的。
2536 0