vb加密函数,可加密中文,有密码

求大神帮忙
加密函数
要求可加密中文
而且可根据给定的密码加密
加密(要加密的字符串,密码)
然后密码不同,加密后的就不同
谢谢了

3个回答

最简单的是先做base64编码,然后不存在什么中文的问题了,再xor下。解密相反,先xor,然后base64解码
如果要完整代码,请先采纳下。

 Option Explicit
Private Const cstBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Private arrBase64() As String

Public Function 加密(strSource As String, key As String) As String
    On Error Resume Next
    If UBound(arrBase64) = -1 Then
        arrBase64 = Split(StrConv(cstBase64, vbUnicode), vbNullChar)
    End If
    Dim arrB() As Byte, bTmp(2) As Byte, bT As Byte
    Dim I As Long, J As Long
    arrB = StrConv(strSource, vbFromUnicode)

    J = UBound(arrB)
    For I = 0 To J Step 3
        Erase bTmp
        bTmp(0) = arrB(I + 0) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)
        bTmp(1) = arrB(I + 1) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)
        bTmp(2) = arrB(I + 2) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)

        bT = (bTmp(0) And 252) / 4
        加密 = 加密 & arrBase64(bT)

        bT = (bTmp(0) And 3) * 16
        bT = bT + bTmp(1) \ 16
        加密 = 加密 & arrBase64(bT)

        bT = (bTmp(1) And 15) * 4
        bT = bT + bTmp(2) \ 64
        If I + 1 <= J Then
            加密 = 加密 & arrBase64(bT)
        Else
            加密 = 加密 & "="
        End If

        bT = bTmp(2) And 63
        If I + 2 <= J Then
            加密 = 加密 & arrBase64(bT)
        Else
            加密 = 加密 & "="
        End If
    Next
End Function

Public Function 解密(strEncoded As String, key As String) As String
    On Error Resume Next
    Dim arrB() As Byte, bTmp(3) As Byte, bT As Long, bRet() As Byte
    Dim I As Long, J As Long
    arrB = StrConv(strEncoded, vbFromUnicode)
    J = InStr(strEncoded & "=", "=") - 2
    ReDim bRet(J - J \ 4 - 1)
    For I = 0 To J Step 4
        Erase bTmp
        bTmp(0) = ((InStr(cstBase64, Chr(arrB(I))) - 1) And 63)
        bTmp(1) = ((InStr(cstBase64, Chr(arrB(I + 1))) - 1) And 63)
        bTmp(2) = ((InStr(cstBase64, Chr(arrB(I + 2))) - 1) And 63)
        bTmp(3) = ((InStr(cstBase64, Chr(arrB(I + 3))) - 1) And 63)

        bT = bTmp(0) * 2 ^ 18 + bTmp(1) * 2 ^ 12 + bTmp(2) * 2 ^ 6 + bTmp(3)

        bRet((I \ 4) * 3) = (bT \ 65536) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)
        bRet((I \ 4) * 3 + 1) = ((bT And 65280) \ 256) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)
        bRet((I \ 4) * 3 + 2) = (bT And 255) Xor (Asc(Mid(key, I \ 3 Mod Len(key) + 1, 1)) Mod 256)
    Next
    解密 = StrConv(bRet, vbUnicode)
End Function

Private Sub Command1_Click()
    Text3.Text = 加密(Text2.Text, Text1.Text)
End Sub

Private Sub Command2_Click()
    Text2.Text = 解密(Text3.Text, Text1.Text)
End Sub

qq_33967085
????C8 谢谢
3 年多之前 回复

看的不是怎么太清楚。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
vb编程函数中有什么可以实现当前函数切换到另一个函数的语句?
-
请问vb调用函数中加上一个判断提前结束函数并且把另一个函数作为继续传入调用怎么实现?
-
中文vb当前的函数切换到另一个函数但是不使用函数的触发而是直接转换怎么实现
-
vb语言函数和函数的连接是通过什么语句实现的,怎么用两个函数连接一个结果出来?
-
VB的函数的返回值除了可以在函数里定义以外,能不能像C语言那样在函数外面定义?
-
怎么在vb的函数调用中使用转移,将另一个函数的返回结果作为本函数的返回结果转移过去?
-
使用vb的函数调用里面的函数的变量不是参数的话怎么调用,使用goto语句能实现么?
-
怎么对vb的函数传入一个额外的参数?是不是作为变量可以给函数传入一个参数?
-
vb中文版中取一个数组的两边的子数组串的函数是什么,类似mid函数的反函数
-
VB6.0中文编程解函数调用过程中怎么写函数切换的语句代码?
-
vb6.0中文编程系统怎么在函数内实现函数调用的转换?怎么把函数控制权传给另一个函数?
-
关于函数的理解问题,在vb里,函数和循环有什么区别,函数是不是就是有名字的循环?
-
C#或vb.net怎么捕获 WPS的幻灯片开始放映和结束放映?
-
vb 连另一台电脑的数据库,如果另一台电脑设有密码,用户名密码都知道,该怎么写?
-
函数切换在vb6.0中文系统使用什么语句实现的,界面上不判断函数,函数自己判断切换?
-
tofix函数和fix函数有什么区别,tofix函数是java函数,那么怎么在vb中调用呢?
-
VB用函数怎么将传入的两个数组交换?
-
VB调用mdsn函数的方式可以实现数组的拼接么?
-
VB6 对byte数组进行MD5加密,加密后返回byte数组
-
学会了这些技术,你离BAT大厂不远了
每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道 BAT 等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术资料?没关系,平头哥一站式服务,上面统统不是问题。平头哥整理了 BAT 等一线大厂的必备技能,并且帮你准备了对应的资料。对于整理出来的技术,如果你掌握的不牢固,那就赶快巩固,如果你还没有涉及,现在...
程序员真是太太太太太有趣了!!!
网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位程序员大佬们,请让我听到你们的声音!不管你是前端开发...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
武汉为什么进不了互联网第一梯队?
作者 |盛佳莹、张帆 本文经授权转自猎云网(ID:ilieyun) 从2011年以前双创在武汉萌芽,到现在力争互联网第四极,看武汉的互联网企业如何成长。 艰难中萌芽 2011年高考前夕,付小龙坐在宿舍里用人生第一台智能手机听广播,电台里正在讲述姚欣休学创业做出了用户量逾4亿的视频平台PPTV。 夜深人静时,仿佛有什么东西击中了付小龙的内心,“像姚欣一样‘开公司,...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
别再翻了,面试二叉树看这 11 个就够了~
写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面,一紧张,代码写的乱七八糟。如果遇到没有做过的算法题,思路也不知道从何寻找。面试吃了亏之后,我就慢慢的做出总结,开始分类的把数据结构所有的题型和解题思路每周刷题做出的系统性总结写在了 Github...
接班马云的为何是张勇?
上海人、职业经理人、CFO 背景,集齐马云三大不喜欢的张勇怎么就成了阿里接班人? 作者|王琳 本文经授权转载自燃财经(ID:rancaijing) 9月10日,张勇转正了,他由阿里巴巴董事局候任主席正式成为阿里巴巴董事局主席,这也意味着阿里巴巴将正式开启“逍遥子时代”。 从2015年接任CEO开始,张勇已经将阿里巴巴股价拉升了超过200%。但和马云强大的个人光环比,张勇显得尤其...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端。 第二篇:淘宝自动登录2.0,新增Cookies序列化,教大家如何将cookies保存起来。 第三篇:Python爬取淘宝商品避孕套,教大家如何爬取淘宝pc端商品信息。 今天,我们来看看淘宝系列的第四篇 我们在上一篇的时候已经将淘宝数据爬取下来了,...
IPv6 带来的反欺诈难题,程序员该如何破解?
作者 |威胁猎人 本文转载自威胁猎人(ID:ThreatHunter) IP是互联网最基础的身份标识,也是黑灰产业发展不可或缺的底层资源支撑。如果说IPv4是一颗星球,那IPv6就是一整个宇宙,它的地址空间接近无限。本文将揭露目前黑灰产对IPv6资源的利用情况,并剖析在IPv4向IPv6升级的过程中,业务场景下的安全将面临的挑战。 黑灰产采用IPv6发起攻击的趋势不可逆转...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
技术人员要拿百万年薪,必须要经历这9个段位
很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...
面试官:兄弟,说说基本类型和包装类型的区别吧
Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。
C语言这么厉害,它自身又是用什么语言写的?
这是来自我的星球的一个提问:“C语言本身用什么语言写的?”换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言的编译器从哪里来? 用什么语言来写的?如果是用C语...
面试官,不要再问我三次握手和四次挥手
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就...
一些实用的GitHub项目
最近整理了一些在GitHub上比较热门的开源项目关于GitHub,快速了解请戳这里其中涵盖了:学习教程,面试总结,实用工具,框架,机器学习等东西比较杂,要学的东西也比较多...
八大排序(C语言)
void BubbleSort();//冒泡 void SelectSort();//选择 void InsertSort();//直接插入 void ShellSort();//希尔 void HeapSort();//堆排 void QuickSort();//快排 void MegerSort();//归并 void RadixSort();//基数(桶排序) 冒泡: 1)...
为什么说 Web 开发永远不会退出历史舞台?
早在 PC 崛起之际,Web 从蹒跚学步一路走到了主导市场的地位,但是随着移动互联网时代的来临,业界曾有不少人猜测,“Web 应该被杀死,App 才是未来”。不过时间是检...
动画:用动画给面试官解释 TCP 三次握手过程
作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握以及 TCP 的四次挥手,小鹿将会以动画的形式呈现给每个人,这样将复杂的知识简单化,理解起来也容易了很多,尤其对于一个初学者来说。 学习导图 一、TCP 是什么? TCP(Transmissio...
500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是…… 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 `plan_game.py`……
2019诺贝尔经济学奖得主:贫穷的本质是什么?
2019年诺贝尔经济学奖,颁给了来自麻省理工学院的 阿巴希·巴纳吉(Abhijit Vinayak Banerjee)、艾丝特·杜芙若(Esther Duflo)夫妇和哈...
相关热词 c#panel增加滚动条 c#中生成的dll文件 c# 模板类 c# 截取txt文本内容 c# 内存 占用 c#时间格式化 不带- c#替换字符串中指定位置 c# rdlc 动态报表 c# 获取txt编码格式 c#事件主动调用

相似问题

1
VB用函数怎么将传入的两个数组交换?
1
tofix函数和fix函数有什么区别,tofix函数是java函数,那么怎么在vb中调用呢?
1
怎么通过vb调用函数的方式去计算一个single类型的变量的值域?
1
vb语言函数和函数的连接是通过什么语句实现的,怎么用两个函数连接一个结果出来?
1
vb函数结合的情况下函数的返回值类型怎么使用dim语句修饰
1
VB的函数的返回值除了可以在函数里定义以外,能不能像C语言那样在函数外面定义?
1
关于函数的理解问题,在vb里,函数和循环有什么区别,函数是不是就是有名字的循环?
1
vb自身的函数为什么可以返回一个带有嵌套的函数的调用,而我们自己写的用户函数就不能实现呢?
1
怎么通过vb用自定义函数的方式实现函数返回值类型嵌套的做法?
1
怎么对vb的函数传入一个额外的参数?是不是作为变量可以给函数传入一个参数?
1
使用vb的函数调用里面的函数的变量不是参数的话怎么调用,使用goto语句能实现么?
1
VB调用mdsn函数的方式可以实现数组的拼接么?
2
vb中文版中取一个数组的两边的子数组串的函数是什么,类似mid函数的反函数
2
怎么在vb的函数调用中使用转移,将另一个函数的返回结果作为本函数的返回结果转移过去?
2
请问vb调用函数中加上一个判断提前结束函数并且把另一个函数作为继续传入调用怎么实现?
2
vb6.0中文编程系统怎么在函数内实现函数调用的转换?怎么把函数控制权传给另一个函数?
2
vb编程函数中有什么可以实现当前函数切换到另一个函数的语句?
2
VB6.0中文编程解函数调用过程中怎么写函数切换的语句代码?
2
函数切换在vb6.0中文系统使用什么语句实现的,界面上不判断函数,函数自己判断切换?
2
中文vb当前的函数切换到另一个函数但是不使用函数的触发而是直接转换怎么实现