base64编码 vba_VB VBA ASP 可通用的基于Base64进行加密和解密的函数
VB VBA ASP 可通用的基于Base64进行加密和解密的函数
可用于Access VBA 以及 Excel VBA对字符串 数据甚至文本文件进行加密和解密,以保证您数据的安全。
先创建一个模块,在模块中添加如下代码
OPTION EXPLICIT
const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
dim newline
dim Base64EncMap(63)
dim Base64DecMap(127)
'初始化函数
PUBLIC SUB initCodecs()
' 初始化变量
newline =vbCrlf ' 如果是ASP就改成这个 "
" & chr(13) & chr(10)
dim max, idx
max = len(BASE_64_MAP_INIT)
for idx = 0 to max - 1
Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
next
for idx = 0 to max - 1
Base64DecMap(ASC(Base64EncMap(idx))) = idx
next
END SUB
'Base64加密函数
PUBLIC FUNCTION base64Encode(plain)
if len(plain) = 0 then
base64Encode = ""
exit function
end if
dim ret, ndx, by3, first, second, third
by3 = (len(plain) \ 3) * 3
ndx = 1
do while ndx <= by3
first = asc(mid(plain, ndx+0, 1))
second = asc(mid(plain, ndx+1, 1))
third = asc(mid(plain, ndx+2, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
ret = ret & Base64EncMap( third AND 63)
ndx = ndx + 3
loop
if by3 < len(plain) then
first = asc(mid(plain, ndx+0, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
if (len(plain) MOD 3 ) = 2 then
second = asc(mid(plain, ndx+1, 1))
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) )
else
ret = ret & Base64EncMap( (first * 16) AND 48)
ret = ret '& "="
end if
ret = ret '& "="
end if
base64Encode = ret
END FUNCTION
'Base64解密函数
PUBLIC FUNCTION base64Decode(scrambled)
if len(scrambled) = 0 then
base64Decode = ""
exit function
end if
dim realLen
realLen = len(scrambled)
do while mid(scrambled, realLen, 1) = "="
realLen = realLen - 1
loop
dim ret, ndx, by4, first, second, third, fourth
ret = ""
by4 = (realLen \ 4) * 4
ndx = 1
do while ndx <= by4
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15))
ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63))
ndx = ndx + 4
loop
if ndx < realLen then
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
if realLen MOD 4 = 3 then
third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15))
end if
end if
base64Decode = ret
END FUNCTION
' 初始化
call initCodecs
' 测试代码
dim inp, encode
inp = "1234567890"
encode = base64Encode(inp)
Debug.Print "加密前为:" & inp & vbCrlf
Debug.Print "加密后为:" & encode & vbCrlf
Debug.Print "解密后为:" & base64Decode(encode) & vbCrlf
base64编码 vba_VB VBA ASP 可通用的基于Base64进行加密和解密的函数相关推荐
- java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?
摘要: 下文讲述java语言中将图片转换为base64编码的方法分享,如下所示: 例: /* file为图片文件对象 filePath为转换后base64的存储位置 */ public static ...
- base64编码 vba_vb图片转base64编码
[实例简介] [实例截图] [核心代码] Option Explicit Private Sub Form_Load() Dim arrData() As Byte Dim objBase64 As ...
- SpringBoot+Vue实现请求后台获取Base64编码的图片验证码并使用Redis缓存实现2分钟内有效
场景 前端Vue的登录页面,验证码请求后台,后台生成验证码照片后使用Base64编码后, 返回给前端,前端进行显示. 注: 博客: https://blog.csdn.net/badao_liuman ...
- 在网页中嵌入Base64编码文件
大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAk ...
- 【MIME协议】base64编码与quoted-printable编码
文章目录 MIME概述 base64编码 基本原理 具体步骤 例题 quoted-printable编码 基本步骤 例题 ASCLL字符代码表 MIME概述 电子邮件协议SMTP通过连接建立.邮件传送 ...
- base64 string 放不下_用 Base64 编码插入 Markdown 图片
本文写于 2017年02月20日,距今已超过 1 年,距 2020年07月25日 的最后一次修改也已超过 3 个月,部分内容可能已经过时,您可以按需阅读.如果图片无法显示或者下载链接失效,请给我反馈, ...
- Base64编码解码小脚本
目录 脚本 Base64简介 Base64编码原理 Python应用base64编码和解码 Python File(文件) 方法 open()方法 file对象 with as Python对文件后缀 ...
- java url安全的base64编码_URL安全的Base64编码
Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...
- Base64编码知识详解
在我们进行前端开发时,针对项目优化,常会提到一条:针对较小图片,合理使用Base64字符串替换内嵌,可以减少页面http请求. 并且还会特别强调下,必须是小图片,大小不要超过多少KB,等等. 那么,B ...
最新文章
- android 收不到短信广播,android – 短信广播接收器没有得到textmessage
- VMware Fusion 静态ip
- java架构分层_java分层架构概念
- 剪映专业版PC端清理缓存与日志
- linux boa post方式失败,移植boa出现的错误及解决方法
- InDesign: Interactive Documents InDesign:交互式文档 Lynda课程中文字幕
- C#之CAD二次开发: Ribbon界面初探
- Excel2013函数公式大全(一)
- 6.1色彩的概念和对比和调和
- java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
- 《你的降落伞是什么颜色》-- 读书笔记
- 笔记本电脑外放没声音,或外放有声音/插耳机没声音———Realtek High Definition Audio Driver安装
- 哈夫曼树和哈夫曼树编码
- 计算空间中两线段之间的距离
- STM32-通用定时器-定时器中断
- Python入门程序【六】
- 利用python读取txt文档
- 慧算账:一家初创的代账企业说想要抢占市场,却不打算打价格战
- 信息论中的信息量为什么表示成对数
- 新闻数据信息的解析竟也能应用于风控