HTML5 加密和摘要算法(base64,md5, sha1,rsa)
< 一 > BASE64
1,Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法
2,首先需要一个库 base64.js,已上传到博客园 => https://blog-static.cnblogs.com/files/lovling/base64.js 使用方式如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Base64加密</title>
<script src="https://blog-static.cnblogs.com/files/lovling/base64.js"></script>
</head>
<body>
</body>
<script type="text/javascript"> // 编码
var str = base64.encode("你好的女肯德基淑女剑看电视女可能大门口VM看到了吧");
console.log(str) // 解码
str = base64.decode(str);
console.log(str) </script>
</html>
< 二 > MD5 和 HMAC_MD5
1,MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致
2,首先需要引入一个库 hmac.md5.js => https://blog-static.cnblogs.com/files/lovling/hmac.md5.js 使用方式如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MD5签名</title>
<script src="https://blog-static.cnblogs.com/files/lovling/hmac.md5.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
// 不支持汉字加密, 汉字加密可能会出现异常
var str = "hanzi"; // 十六进制输出(常用)
console.log(md5.hex(str)) // 90c374ce46fd7e089c9c5021b6438264 // base64编码输出
console.log(md5.b64(str)) // kMN0zkb9fgicnFAhtkOCZA== // 字符串输出
console.log(md5.str(str)) // ÃtÎFý~P!¶Cd // HAMC 方式,第一个参数是秘钥, 第二个参数是数据
console.log(md5.hamcHex("123", str)) // c67fae40a4ff81afeaf784f2c69dc8ca
console.log(md5.hamcB64("123", str)) // xn+uQKT/ga/q94Tyxp3Iyg==
console.log(md5.hamcStr("123", str)) // Æ®@¤ÿ¯ê÷òÆÈÊ
</script>
</html>
< 三 > SHA1 和 HMAC_SHA1
1,安全哈希算法主要适用于数字签名标准里面定义的数字签名算法
2,首先需要引入一个库 hmac.sha1.js => https://blog-static.cnblogs.com/files/lovling/hmac.sha1.js 使用方式如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SHA1签名</title>
<script src="https://blog-static.cnblogs.com/files/lovling/hmac.sha1.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
// 不支持汉字加密, 汉字加密可能会出现异常
var str = "eyJzY29wZSI6IndvcmtlciIsImRlYWRsaW5lIjoxNTE3MzAxNjI4fQ=="; // 十六进制输出(常用)
console.log(sha1.hex(str)); // 512dbdadb4213b2c458f5ca1d789b666c2de8da9 // base64编码输出
console.log(sha1.b64(str)); // US29rbQhOyxFj1yh14m2ZsLejak= // 字符串输出
console.log(sha1.str(str)); // Q-½´!;,E\¡×¶fÂÞ© // HAMC 方式,第一个参数是秘钥, 第二个参数是数据
console.log(sha1.hamcHex("123", str)); // 31038c3ff4f34acfe618c7ede17091d415404212
console.log(sha1.hamcB64("123", str)); // MQOMP/TzSs/mGMft4XCR1BVAQhI=
console.log(sha1.hamcStr("123", str)); // 1?ôóJÏæÇíápÔ@B
</script>
</html>
< 四 > RSA
1,RSA加密算法是一种非对称性算法。在公开密钥加密和调子商业中广泛使用
2,需要需要引入一个库 rsa.js => https://blog-static.cnblogs.com/files/lovling/rsa.js 使用方式如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>非对称性加密</title>
<script src="https://blog-static.cnblogs.com/files/lovling/rsa.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
var publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9WI8zxvqW0Q2yLq1pB5KUbYmEiU4VznAt7/y6FnSoUJaDTGDg3uB6urOmqBvcE4oS1DGURui/FGxDXsROuoKgF21KU/fXMn1tJxXRt/NkYhqFA8ZJFnynh5VGHYTafx9HJ17CCChbI0qx2qdIDBUDaMGPHENqJs5TylJqapVecQIDAQAB";
var privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL1YjzPG+pbRDbIurWkHkpRtiYSJThXOcC3v/LoWdKhQloNMYODe4Hq6s6aoG9wTihLUMZRG6L8UbENexE66gqAXbUpT99cyfW0nFdG382RiGoUDxkkWfKeHlUYdhNp/H0cnXsIIKFsjSrHap0gMFQNowY8cQ2omzlPKUmpqlV5xAgMBAAECgYAIEQXIxulWE4Hp3WM13kS4XhJFuzPAahMNYfP6WYqOwSAoZ9CYw+X8VIfiybamIY74TmHuVzcDLPOPyzHByOBXruNK+ynU61BFMOdC7a2oR09PW3Fj8mvChtPYalzN/h2GuSD/eJ4hnZC7b3AEz4DTuaILVIae2SWqzGCJ8JYsoQJBAOLldE9FEeJZrqAsTATx8vL7KqkEwgJ7fTsLptCpThNezD8ecyO3mDUctAxvR+Iislxfy/TixuC4iyYdrBPBCAcCQQDVohJPE5ahFcLSDpSme2U+A5nrMRRMg0dnF/7SnSqYLJka49Q+4kDB8/OFSHtwlNztC3wiEF/PktrKxt6C1JfHAkEAxKQTvzefHkqXOx3o7Eg8RDVFbaI/+iLID8ozUpfIoKUB4pojM4tEEJPFvxkadXOYnNIxUxTPQ6bsgaYpoh0jNQJARqycY/61+UqKrhVWxhDSeIaWeAE/luRjTc7ZZXHLMpamfAfdIoSVKdT7vh8xfxgwUldXVKmYGMKbkTPjTuLn5wJAaLMytE0yg+E+uyf1UgCWMfmMLmHPmGIvw9i9eIx35w8JVG5wHFM8wo1v26CWq9Y5x6n3qP36Yyqsg4ahRuRn4A==" // 设置公钥
rsa.setPublicKey(publicKey); // 设置私钥
rsa.setPrivateKey(privateKey); var str = "这是一个字符串"; // 加密
str = rsa.encrypt(str);
console.log(str); // 解密
str = rsa.decrypt(str);
console.log(str)
</script>
</html>
3,关于公钥和私钥的生成方式,可以在该网站实现 => http://web.chacuo.net/netrsakeypair
HTML5 加密和摘要算法(base64,md5, sha1,rsa)的更多相关文章
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...
- iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)
普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...
- java 加密工具类(MD5、RSA、AES等加密方式)
1.加密工具类encryption MD5加密 import org.apache.commons.codec.digest.DigestUtils; /** * MD5加密组件 * * @autho ...
- Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结
(1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode
使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...
- IOS常见的加密方法,常用的MD5和Base64
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- 加密算法比较3DES AES RSA ECC MD5 SHA1等
加 密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了.非对称算法与之不同,发送双方A,B事先均 ...
- 简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合
美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立.密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合.RSA是非对称算法,加密密钥和解密密钥是不 ...
随机推荐
- sql server 与 sql server compact 互相数据导入
从SQL Server 导出数据到 Sql Compact 使用 Sql Server Compact Tool box 从SQL Server Comapct 导出数据到 Sql Server 使 ...
- 创建一个dynamics 365 CRM online plugin (九) - Context.Depth
让我们来看看官方文档是怎么讲的 https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide ...
- 事件冒泡(event bubbling)与事件捕捉(event capturing)
事件捕捉: 单击<div>元素就会以下列顺序触发click 事件. Document => Element html => Element body => Element ...
- SqlServer :实现树形结构递归查询(无限极分类)
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一 ...
- update_engine-整体结构(三)
在update_engine-整体结构(二)中分析到了Action,那么我们接着继续分析. 首先来看一下BuildUpdateActons(...)这个方法. src/system/update_en ...
- H3C BFD MAD检测方式的IRF典型配置举例
一.组网需求 由于网络规模迅速扩大,当前中心交换机(Device A)转发能力已经不能满足需求,现需要在保护现有投资的基础上将网络转发能力提高一倍,并要求网络易管理.易维护. 二.组网图 三.配置思路 ...
- JavaScript问题——在浏览器中的offsetLeft/offsetWidth等属性是什么?
原文链接http://www.cnblogs.com/xiaohuochai/p/5828369.html https://blog.csdn.net/u012532033/article/detai ...
- JSON 序列化与反序列化, 与XML相互转换.
方式一: 使用于 JavaScriptSerializer类 适用于普通场景, Excel导入导出, 前台传输查询参数直接处理等. JavaScriptSerializer serializer = ...
- atom插件
1.Sync Settings 搭配github,同步你的atom插件信息,配置信息,让你轻松实现一台电脑配置,多台电脑共享. 2.Emmet 能够基于Emmet语法产生HTML,做过前段开发的不会不 ...
- C语言数据结构基础学习笔记——图
图(G)由顶点集(V)和边集(E)组成,G=(V,E) 常用概念: ①V(G)表示图G中顶点的有限非空集,V永不为空: ②用|V|表示图G中顶点的个数,也称为图G的阶: ③E(G)表示图G中顶点之间关 ...