一、在项目根目录下安装
npm install --save js-base64
npm install --save js-md5
二、在项目文件中引入(main.js 作为全局变量)
import md5 from 'js-md5';
let Base64 = require('js-base64').Base64; ==== import { Base64 } from 'js-base64'
三、在项目文件中使用
base64
Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.encode('小飼弾'); // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by-
Base64.decode('ZGFua29nYWk='); // dankogai
Base64.decode('5bCP6aO85by+'); // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-'); // 小飼弾
md5
md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
// It also supports UTF-8 encoding
md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07
// It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
md5([]); // d41d8cd98f00b204e9800998ecf8427e
md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
// Different output
md5(''); // d41d8cd98f00b204e9800998ecf8427e
md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e
md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.arrayBuffer(''); // ArrayBuffer
md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
另外附上demo源码
index.html
//index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>base64加密</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<input type="password" name="" id="basepass" value="" />
<input type="button" name="" id="" value="base加密" onclick="basefunc(1)" />
<input type="button" name="" id="" value="base解密" onclick="basefunc(2)" />
</body>
<script src="Base64.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function basefunc(e) {
var Ipt = document.getElementById('basepass')
// var password = $('#basepass').val()
var password = Ipt.value
var encypass = Base64.encode(password)
var decryptpass = Base64.decode(encypass)
if (e == 1) {
console.log('加密之前的密码是:' + password)
console.log('加密之后的结果是:' + encypass)
} else if (e == 2) {
console.log('解密之前的结果是:' + encypass)
console.log('解密之后的结果是:' + decryptpass)
}
}
</script>
</html>
Base64.js
// Base64.js
var Base64 = {
_keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
encode: function(e) {
var t = ''
var n, r, i, s, o, u, a
var f = 0
e = Base64._utf8_encode(e)
while (f < e.length) {
n = e.charCodeAt(f++)
r = e.charCodeAt(f++)
i = e.charCodeAt(f++)
s = n >> 2
o = ((n & 3) << 4) | (r >> 4)
u = ((r & 15) << 2) | (i >> 6)
a = i & 63
if (isNaN(r)) {
u = a = 64
} else if (isNaN(i)) {
a = 64
}
t =
t +
this._keyStr.charAt(s) +
this._keyStr.charAt(o) +
this._keyStr.charAt(u) +
this._keyStr.charAt(a)
}
return t
},
decode: function(e) {
var t = ''
var n, r, i
var s, o, u, a
var f = 0
e = e.replace(/[^A-Za-z0-9+/=]/g, '')
while (f < e.length) {
s = this._keyStr.indexOf(e.charAt(f++))
o = this._keyStr.indexOf(e.charAt(f++))
u = this._keyStr.indexOf(e.charAt(f++))
a = this._keyStr.indexOf(e.charAt(f++))
n = (s << 2) | (o >> 4)
r = ((o & 15) << 4) | (u >> 2)
i = ((u & 3) << 6) | a
t = t + String.fromCharCode(n)
if (u != 64) {
t = t + String.fromCharCode(r)
}
if (a != 64) {
t = t + String.fromCharCode(i)
}
}
t = Base64._utf8_decode(t)
return t
},
_utf8_encode: function(e) {
e = e.replace(/rn/g, 'n')
var t = ''
for (var n = 0; n < e.length; n++) {
var r = e.charCodeAt(n)
if (r < 128) {
t += String.fromCharCode(r)
} else if (r > 127 && r < 2048) {
t += String.fromCharCode((r >> 6) | 192)
t += String.fromCharCode((r & 63) | 128)
} else {
t += String.fromCharCode((r >> 12) | 224)
t += String.fromCharCode(((r >> 6) & 63) | 128)
t += String.fromCharCode((r & 63) | 128)
}
}
return t
},
_utf8_decode: function(e) {
var t = ''
var n = 0
var r = (c1 = c2 = 0)
while (n < e.length) {
r = e.charCodeAt(n)
if (r < 128) {
t += String.fromCharCode(r)
n++
} else if (r > 191 && r < 224) {
c2 = e.charCodeAt(n + 1)
t += String.fromCharCode(((r & 31) << 6) | (c2 & 63))
n += 2
} else {
c2 = e.charCodeAt(n + 1)
c3 = e.charCodeAt(n + 2)
t += String.fromCharCode(
((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)
)
n += 3
}
}
return t
}
}
当然了 也阔以组装成共用方法放在vue项目里