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是非对称算法,加密密钥和解密密钥是不 ...
随机推荐
- 《DSP using MATLAB》Problem 7.16
使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- 对于Linux内核执行过程的理解(基于fork、execve、schedule等函数)
382 + 原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 一.实验环境 win10 -> VMware -> Ubuntu1 ...
- 8. Security-oriented operating systems (面向安全的操作系统 5个)
这款出色的可启动live CD的Linux发行版来自于Whax和Auditor的合并. 它拥有各种各样的安全和取证工具,并提供丰富的开发环境. 强调用户模块化,所以用户可以轻松地定制以包括个人脚本,附 ...
- JNI学习笔记_Java调用C —— 非Android中使用的方法
一.学习笔记 1.java源码中的JNI函数本机方法声明必须使用native修饰. 2.相对反编译 Java 的 class 字节码文件来说,反汇编.so动态库来分析程序的逻辑要复杂得多,为了应用的安 ...
- Freescale MKL16Z1288VF4 芯片调试接口
WDOG监视内部系统操作,并在发生故障时强制复位.它可以运行在一个独立的1 kHz低功率振荡器,具有可编程刷新窗口,以检测程序流或系统频率的偏差. 看门狗计时器保持一个时间在系统上运行,并重置它,以防 ...
- MySQL表介绍
MySQL InnoDB表介绍 一.索引组织表 在InnoDB引擎中,表都是根据主键顺序存放的.这种存储方式称为索引组织表,在InnoDB引擎中,每张表都有逐渐.如果没有显示定义主键,则引擎会按照以下 ...
- Excel与Google Sheets中实现线性规划求解
很久没更新过APS系列文章了,这段时间项目工作确实非常紧,所以只能抽点时间学习一下运筹学的入门知识,算是为以后的APS项目积累点基础.看了一些运筹学的书(都是科普级别的)发现原来我目前面对的很多排产. ...
- Web高级 网站安全
1. SQL注入 虽然现在SQL注入发生的情况总的来说越来越少,还是提二句.关于什么是SQL注入大家都知道就不多说了. 1.1 原理 我们在做前端页面的时候,少不了会又各种输入框,然后通过GET或者P ...
- Ubuntu16.04下安装Hyperledger Fabric 1.0.0
系统环境 * Ubuntu: 16.04 * Go: 1.9.2 * NodeJS: v6.12.0 * Docker: 17.09.0-ce * HyperLedger Fabric: 1.0.0 ...
- 在socket的server端处理client端发来的数据
一.楔子 最近做了一个需求遇到一个坑,归结成一个小问题,其实就是在socket的server端处理client端发来的数据的问题,现将这个问题总结一下,本文将数据在server端以字典的形式存储. 另 ...