(2014-11-14 15:37:35)

标签:

it

分类: Web前端开发

摘要:

大部分动态网站都支持从客户端到服务器传递数据,如果传递的数据被别人截取就非常危险,尤其是一些用户名密码之类的。这时候就需要我们在传递数据之前对数据进行加密。现在的加密算法已经有很多了,例如: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

js前端数据加密插件的更多相关文章

  1. 最好用的js前端框架、组件、文档在线预览插件

    这里收集的都是个人认为比较好的js框架.组件 js前端ui框架 此处列举出个人认为最好的几个框架(排序即排名),现在好点的框架商用都需要付费,以下几个也不例外,但是由于组件丰富,都可以作为企业应用的完 ...

  2. JS前端图形化插件之利器Gojs组件(php中文网)

    JS前端图形化插件之利器Gojs组件(php中文网) 一.总结 一句话总结:php中文网我可以好好走一波 二.JS前端图形化插件之利器Gojs组件 参考: JS前端图形化插件之利器Gojs组件-js教 ...

  3. 【QRcode二维码】:使用JS前端插件QRcode.js生成二维码

    1.先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode.js 是实现二 ...

  4. Sublime编辑器 前端 必备插件

    sublime编辑器前端必备插件 下面这一行是Package Control包安装,它是sublime的插件包管理器.新安装的sublime 里没有Package Control,按一下ctrl+~, ...

  5. VSCode 前端必备插件

    VSCode 前端必备插件 Debugger for Chrome 让 vscode 映射 chrome 的 debug功能,静态页面都可以用 vscode 来打断点调试 { "versio ...

  6. 第一百八十七节,jQuery,知问前端--cookie 插件,注册成功后生成cookie,显示登录状态

    jQuery,知问前端--cookie 插件 学习要点: 1.使用 cookie 插件 2.注册直接登录 Cookie 是网站用来在客户端保存识别用户的一种小文件.一般来用库可以保存用户登 录信息.购 ...

  7. 第一百八十三节,jQuery-UI,知问前端--验证插件

    jQuery-UI,知问前端--验证插件 学习要点: 1.使用 validate.js 插件 2.默认验证规则 3.validate()方法和选项 4.validate.js 其他功能 验证插件(va ...

  8. Jquery前端分页插件pagination同步加载和异步加载

    上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...

  9. Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG

    摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...

随机推荐

  1. 【刷题】洛谷 P4329 [COCI2006-2007#1] Bond

    题意翻译 有 \(n\) 个人去执行 \(n\) 个任务,每个人执行每个任务有不同的成功率,每个人只能执行一个任务,求所有任务都执行的总的成功率. 输入第一行,一个整数 \(n\) ( \(1\leq ...

  2. [CF613D]Kingdom and its Cities

    description 题面 data range \[n, q,\sum k\le 10^5\] solution 还是虚树的练手题 \(f[0/1][u]\)表示\(u\)的子树内,\(u\)是否 ...

  3. HDOJ(HDU).2266 How Many Equations Can You Find (DFS)

    HDOJ(HDU).2266 How Many Equations Can You Find (DFS) [从零开始DFS(9)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零 ...

  4. 【HASH】【UVA 10125】 Sumset

    传送门 Description 给定一个整数集合S,求一个最大的d,满足a+b+c=d,其中a,b,c,d∈S Input 多组数据,每组数据包括: 第一行一个整数n,代表元素个数 下面n行每行一个整 ...

  5. 初学VS的目录结构

    工程目录下各文件的含义 一般大部分的文章可能介绍到上面就算结束了,但我这还没有.创建工程产生的各个文件都你知道是什么用的吗? 如果你是一个初学者,你可能会不知道(老手请跳过本文).Ok,我就带你逐一了 ...

  6. printk打印机别

    1.查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4    4    1    7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能 ...

  7. hadoop压缩和解压

    最近有一个hadoop集群上的备份需求.源文件有几百G,如果直接复制太占用磁盘空间.将文件从hadoop集群下载到本地,压缩之后再上传到hadoop则太耗时间.于是想到能否直接在HDFS文件系统上进行 ...

  8. Leetcode 144.二叉树的前序遍历

    1.题目描述 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2.解法 ...

  9. mysql concat update中拼接字符串

    mysql> select id,avatar from tf_user; +----+--------------+ | id | avatar | +----+--------------+ ...

  10. [Jenkins 新插件] 兼容阿里开发手册 (P3C) 的火线插件安装使用教程

    一.前言 火线(Fireline)的Jenkins官方插件已经上线,目前火线不仅能检查出安卓代码中的安全类问题和内存泄露问题,还兼容了阿里开源的Java开发规约(P3C项目),本文将以教程的形式帮助大 ...