crypto加密算法库
这个库中包含了base64,MD5,CRC32等加密算法,部分支持Unicode编码,具体可查阅README文档了解调用方法。
(注:算法内容为个人学习编写,写法可读性高,非官方标准写法。)
应用:可直接应用于网页中
目录
RandomString随机数
引用链接:
https://cdn.jsdelivr.net/gh/bencky1017/crypto/js/randomStr.js
HTML引用:
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/bencky1017/crypto/js/randomStr.js"></script>
函数
生成随机数(长度,?类型,?显示名称)[^符号解释]
RandomString(length,?type,?showName)
简化函数
rs(length,?type,?showName)
参数说明
length:长度
type:类型,参数为:[1-6]
1:数字
2:字母
3:数字+字母
4:数字+符号
5:字母+符号
6:数字+字母+符号(_~!@#$%^&+{}`-=[];,)
默认类型为:数字+字母
showName:显示名称,参数为:[true|false|1|0]
若填写的参数‘>1’,则按照‘1’处理
代码示例
> RandomString(8,3)
“zBR6wbw3”
> RandomString(8,3,true)
“数字+字母:tGate3DQ”
方法
分隔字符串(?分隔符,?段落列表)
splits(?unit,?partList)
参数说明
unit:分隔符
自定义字符,默认为‘-’
partList:段落列表,数组
每段的字符串数,每段之间按照分隔符分开
如32位字符串,按照UUID的格式,为:[8,4,4,4],最后一位‘12’省略
partList参数可以为空,内置的默认算法如下:(详见JS文件)
| 变量 | 名称 | 公式 | 数值 |
|---|---|---|---|
| a_bit | 位长 | this.length | 32 |
| b_part | 段落数 | Math.round(a_bit/8+1) | 5 |
| c_start | 开始位数 | Math.round((b_part-1)*2) | 8 |
| d_via | (中间计算) | a_bit-b_part*2 | 22 |
| e_mid | 中段位数 | Math.round(d_via/b_part) | 4 |
| f_end | 末尾位数 | a_bit-c_start-(b_part-2)*e_mid | 12 |
代码示例
> RandomString(32,3).splits(‘-‘)
“YmVuY2t5-MTAx-Ny9j-cnlw-dG8vcmFuZG9t”
> RandomString(16,3).splits()
“cmFu-ZG9-tU3RyaW5n”
此方法会将RandomString()所显示的类型名称(type)移除,如下:
随机字符串:“数字+字母:tGate3DQ”
经过splits():“tG-ate3DQ”
Base64加密解密
引用链接:
HTML引用:
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/bencky1017/crypto/js/base64.js"></script>
函数
Base64编码(字符串)
base64.encode(str)
Base64解码(字符串)
base64.decode(str)
UTF-8的Base64编码(字符串)【支持中文编解码】
base64.utf8encode(str)
UTF-8的Base64解码(字符串)【支持中文编解码】
base64.utf8decode(str)
简化函数
be===base64.encode;
bd===base64.decode;
beu===base64.uft8encode;
bdu===base64.utf8decode;
参数说明
str:字符串
代码示例
无中文字符
> base64.encode(‘base64’)
“YmFzZTY0”
> base64.decode(‘YmFzZTY0’)
“base64”
有中文字符
> base64.utf8encode(‘base64编码’)
“YmFzZTY057yW56CB”
> base64.utf8decode(‘YmFzZTY057yW56CB’)
“base64编码”
方法
字符串左填充(?长度)
lfill(?num)
字符串右填充(?长度)
rfill(?num)
此方法可以对字符串进行0填充,使字符串总长度为8的倍数
参数说明
num:字符串长度,默认为8
代码示例
> ‘abc123’.lfill(10)
“0000abc123”
> ‘abc123’.rfill()
“abc12300”
MD5摘要算法
引用链接:
HTML引用:
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/bencky1017/crypto/js/md5.js"></script>
CRC32校验算法
引用链接:
HTML引用:
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/bencky1017/crypto/js/CRC32.js"></script>