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是非对称算法,加密密钥和解密密钥是不 ...
随机推荐
- Go 字符串连接+=与strings.Join性能对比
Go字符串连接 对于字符串的连接大致有两种方式: 1.通过+号连接 func StrPlus1(a []string) string { var s, sep string for i := 0; i ...
- 怎样Debug Dynamics 365 CRM Plugin
写了这么多期的随笔,很多人会问,怎么debug写好的plugin呢 首先我们需要准备以下内容 Visual Studio Plugin Registration Tool CRM Instance E ...
- 宝塔linux面板 解决TP3.2 404
在配置文件中加入一下配置: location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1; } } location ...
- Application、QueryString、session、cookie、ViewState、Server.Transfer等
Application: WebForm1.aspx: protected void Button1_Click(object sender, EventArgs e) { ; Response.Re ...
- pycrypto安装出错的问题 intmax_t C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.
前言: 需要安装 Microsoft Visual Studio2017 Community 或者buildtools 解决方案一(解决了python3.7上安装pycrypto-2.6.1的错误问题 ...
- ionic3使用echarts
1.安装typings及echarts npm install typings echarts --global 2.安装 ECharts 的 TypeScript 定义文件 npm install ...
- Javascript小问题
1.原生对象克隆 var clone = function(obj) { var o; if (typeof obj == "object") { if (obj === null ...
- python学习笔记八(集合)
集合 set是一个无序的不重复元素序列. 用大括号或set()函数创建集合.注意:创建一个空集合用set(),不用{},{}用来创建空字典 basket = {'apple','orange','ap ...
- adb 常用命令-转载
转自:https://blog.csdn.net/suxing_ing/article/details/54907860 显示当前运行的全部模拟器:adb devices 获取序列号:adb get- ...
- c#调用python代码
c#调用python的方法比较多,比如ironpython,尽管不用安装python环境,可是不兼容python众多的包,也只更新到了python2,通过创建python进程这种方式可以很好的解决兼容 ...