< 一 > 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!¶C‚d // 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)的更多相关文章

  1. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  2. iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)

    普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...

  3. java 加密工具类(MD5、RSA、AES等加密方式)

    1.加密工具类encryption MD5加密 import org.apache.commons.codec.digest.DigestUtils; /** * MD5加密组件 * * @autho ...

  4. Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结

    (1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...

  5. 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode

    使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...

  7. IOS常见的加密方法,常用的MD5和Base64

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  8. 加密算法比较3DES AES RSA ECC MD5 SHA1等

    加 密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了.非对称算法与之不同,发送双方A,B事先均 ...

  9. 简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合

    美国数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立.密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合.RSA是非对称算法,加密密钥和解密密钥是不 ...

随机推荐

  1. javascript 创建节点和新增节点

    createElement(tabName) 创建一个为tagName的新元素节点 ANode.appendChild(BNode)把B节点追加至A节点的末尾 insertBefore(ANode,B ...

  2. EXCEL 批量添加单元格名称

    在EXCEL单元格的值填入想为其设置的名称之后,调整下述代码的begin_line,begin_column,end_line,end_column的值,执行此宏,可用于批量为单元格设置名称. (注: ...

  3. SQL列子 转载

  4. python面试题--数据类型

    数据类型 字典 dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;应用场景:dict,使用键和值进行关联的数据; 现有字典d={ ...

  5. EasyMall注册功能

    EasyMall注册功能 1. 环境搭建 创建一个EasyMall的web应用 配置www.easymall.com网站,并配置为缺省的虚拟主机,将EasyMall配 置为缺省的web应用,在配置in ...

  6. 在虚拟机上配置安装hadoop集群

    原本以为有大神已经总结的很清楚了,就不自己在写了, 但是在自己安装的过程中还是出现了一些问题, 所以打算以自己的方式重新总结一下.    参考https://blog.csdn.net/hliq539 ...

  7. 2018总结-->2019新目标

    2018完成的事情: ①考到了驾照: ②刷了很多题,春季找到了实习,赚到了去日本旅游的经费和2019毕业租房的预算,最后签了offer: ③去了西安.天津.山西,看到了不一样的人和事: ④发了小论文, ...

  8. 更改/var/log/messages默认权限

    问题描述: 操作系统:redhat 6.5 因为开发人员和运维人员平时在应用出现bug时,会需要看/var/log/message日志,但是默认权限为600,因此除了root用户都无法读取,现需要把每 ...

  9. Springboot+ActiveMQ(ActiveMQ消息持久化,保证JMS的可靠性,消费者幂等性)

    ActiveMQ 持久化设置: 在redis中提供了两种持久化机制:RDB和AOF 两种持久化方式,避免redis宕机以后,能数据恢复,所以持久化的功能 对高可用程序来说 很重要. 同样在Active ...

  10. 转载:mongodb的两阶段提交实战

    项目中用到了mongodb(3.x版本),业务上需要操作mongodb的多个collections,希望要么同时操作成功,要么回滚操作保持数据的一致性,这个实际上要求在mongodb上实现事务功能,在 ...