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进行加密和解密的函数相关推荐

  1. java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?

    摘要: 下文讲述java语言中将图片转换为base64编码的方法分享,如下所示: 例: /* file为图片文件对象 filePath为转换后base64的存储位置 */ public static ...

  2. base64编码 vba_vb图片转base64编码

    [实例简介] [实例截图] [核心代码] Option Explicit Private Sub Form_Load() Dim arrData() As Byte Dim objBase64 As ...

  3. SpringBoot+Vue实现请求后台获取Base64编码的图片验证码并使用Redis缓存实现2分钟内有效

    场景 前端Vue的登录页面,验证码请求后台,后台生成验证码照片后使用Base64编码后, 返回给前端,前端进行显示. 注: 博客: https://blog.csdn.net/badao_liuman ...

  4. 在网页中嵌入Base64编码文件

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAk ...

  5. 【MIME协议】base64编码与quoted-printable编码

    文章目录 MIME概述 base64编码 基本原理 具体步骤 例题 quoted-printable编码 基本步骤 例题 ASCLL字符代码表 MIME概述 电子邮件协议SMTP通过连接建立.邮件传送 ...

  6. base64 string 放不下_用 Base64 编码插入 Markdown 图片

    本文写于 2017年02月20日,距今已超过 1 年,距 2020年07月25日 的最后一次修改也已超过 3 个月,部分内容可能已经过时,您可以按需阅读.如果图片无法显示或者下载链接失效,请给我反馈, ...

  7. Base64编码解码小脚本

    目录 脚本 Base64简介 Base64编码原理 Python应用base64编码和解码 Python File(文件) 方法 open()方法 file对象 with as Python对文件后缀 ...

  8. java url安全的base64编码_URL安全的Base64编码

    Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...

  9. ​Base64编码知识详解 ​

    在我们进行前端开发时,针对项目优化,常会提到一条:针对较小图片,合理使用Base64字符串替换内嵌,可以减少页面http请求. 并且还会特别强调下,必须是小图片,大小不要超过多少KB,等等. 那么,B ...

最新文章

  1. android 收不到短信广播,android – 短信广播接收器没有得到textmessage
  2. VMware Fusion 静态ip
  3. java架构分层_java分层架构概念
  4. 剪映专业版PC端清理缓存与日志
  5. linux boa post方式失败,移植boa出现的错误及解决方法
  6. InDesign: Interactive Documents InDesign:交互式文档 Lynda课程中文字幕
  7. C#之CAD二次开发: Ribbon界面初探
  8. Excel2013函数公式大全(一)
  9. 6.1色彩的概念和对比和调和
  10. java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
  11. 《你的降落伞是什么颜色》-- 读书笔记
  12. 笔记本电脑外放没声音,或外放有声音/插耳机没声音———Realtek High Definition Audio Driver安装
  13. 哈夫曼树和哈夫曼树编码
  14. 计算空间中两线段之间的距离
  15. STM32-通用定时器-定时器中断
  16. Python入门程序【六】
  17. 利用python读取txt文档
  18. 慧算账:一家初创的代账企业说想要抢占市场,却不打算打价格战
  19. 信息论中的信息量为什么表示成对数
  20. 新闻数据信息的解析竟也能应用于风控

热门文章

  1. 获取AD用户和OU属性字段名称
  2. Hive Error : Java heap space 解决方案
  3. 分布式session之token解决方案实现
  4. android 获取视频缩略图终极解决方案(ffmpeg)
  5. 使用supervisor支持Python3程序 (解决找不到Module的问题)
  6. 循环前增加和后增加之间的区别?
  7. “ yield”关键字有什么作用?
  8. 京津冀青少年网球分级赛总决赛开打 118名选手对决
  9. spring mvc 与Struts的认识
  10. Java编程思想(第4版)读书笔记——01