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!¶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

原文地址:https://www.cnblogs.com/lovling/p/10521997.html

时间: 2024-11-13 08:20:00

HTML5 加密和摘要算法(base64,md5, sha1,rsa)的相关文章

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

一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应位其中一个为1另一个为0,则返回1. //对数字加密 int P_int_Num, P_int_Key;//定义两个值类型变量 string Encryptstr = (P_int_Num ^ P_int_Key).ToString();//加密数值 //对数字解密 int P_int_Key, P_int_

delphi base64 md5与sha1加密单(cnvcl)

今天一直在研究delphi中的base64和sha1,使用的是http://www.cnpack.org的cnvcl中的单元,CnSHA1.pas和CnBase64.pas,很感谢cnpack组的贡献,让我们方便的在delphi中使用base64与sha1加密,还有md5. 在使用单次加密时还和php的结果还可以说一样,就是php都是小写,delphi是大写,但两次加密后结果就完全不一样的,因为大小写二次加密结果是不一样的,这一点要注意. 使用这三种加密方式时要分别引用CnSHA1,CnBase

java 加密解密算法MD5/SHA1,DSA

通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难.本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用. 第1章基础知识 1.1. 单钥密码体制 单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密. 通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难.但是加密的安全性依靠密钥保管的安全性,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题,并且如果在多用户的情况下密钥的

密码学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)

Java 加密解密之消息摘要算法(MD5 SHA MAC) 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest).它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了.因此消息摘要保证了消息的完整性.消息摘要采用单向Hash 函数将需加密 的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(

小白C#窗体系列-08小议Base64+MD5加密

啥是Base64呢?怎么说呢,这个加密比较常用,想想迅雷的下载地址,想想QQ旋风和快车.他们就是用的这个Base64来加密地址,现在网上很多地址解析器,原理就是反Base64.        Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24 位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节

常见的加密和解密算法—MD5

一.MD5加密概述 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992). MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用

iOS:Objective-c的MD5/SHA1加密算法的实现

介绍: Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一SHA即Secure Hash Algorithm(安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布的一系列密码散列函数. 链接:http://m.111cn.net/art-53370.htm

Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明文是yanzi1225627,得到MD5加密后的字符串是:14F2AE15259E2C276A095E7394DA0CA9  但不能由后面一大串倒推出yanzi1225627.因此可以用来存储用户输入的密码在服务器上.现在下载文件校验文件是否中途被篡改也是用的它,原理参见:http://blog.c

Linux下校验下载文件的完整性(MD5,SHA1,PGP)

查看: Linux下校验下载文件的完整性(MD5,SHA1,PGP) http://blog.useasp.net/archive/2014/03/29/use-md5-sha1-or-pgp-to-check-downloaded-file-integrity-on-linux.aspx Linux下的学习开始总是艰难的,但有的时候,却发现Linux下远比Windows的操作来的实在的多——这下载文件的完整性就是其中一件,让本人觉着很爽的一件事情.在编译安装各种软件的时候,总要到各个网站上收集