建议不要对加密过的数据直接用到文本()命令转换为文本,建议用base64编码为文本,解密时先base64解码,然后再解密。
可以用超级加解密支持库里的BASE64编码 ()和BASE64解码 ()命令来实现编码和解码。
如果不想下支持库的话下面是BASE64编码和BASE64解码的代码:
.版本 2
.子程序 BASE64编码, 文本型, 公开, BASE64编码处理(返回编码后的文本)
.参数 待编码数据, 字节集, , 待编码字节集
.局部变量 余数
.局部变量 临时, 字节型, , "3"
.局部变量 变量
.局部变量 集合, 字节集
.局部变量 长度, 整数型
.局部变量 字符, 字节集
.局部变量 i
长度 = 取字节集长度 (待编码数据)
.如果真 (长度 < 1)
返回 (“”)
.如果真结束
余数 = 长度 % 3
.如果真 (余数 > 0)
待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数)
.如果真结束
长度 = 取字节集长度 (待编码数据)
字符 = 取空白字节集 (长度 × 4 ÷ 3)
i = 1
集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
.变量循环首 (1, 长度, 3, 变量)
临时 [1] = 待编码数据 [变量]
临时 [2] = 待编码数据 [变量 + 1]
临时 [3] = 待编码数据 [变量 + 2]
字符 [i] = 集合 [右移 (临时 [1], 2) + 1]
字符 [i + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1]
字符 [i + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1]
字符 [i + 3] = 集合 [位与 (临时 [3], 63) + 1]
i = i + 4
.变量循环尾 ()
.如果真 (余数 > 0)
长度 = 取字节集长度 (字符)
.如果 (余数 = 1)
字符 [长度 - 1] = 取代码 (“=”, )
字符 [长度] = 取代码 (“=”, )
.否则
字符 [长度] = 取代码 (“=”, )
.如果结束
.如果真结束
返回 (到文本 (字符))
.子程序 BASE64解码, 字节集, 公开, BASE64解码处理(返回解码后的字节集数据)
.参数 编码文本, 文本型, 参考, 待解码的文本
.局部变量 文本长度
.局部变量 整倍数
.局部变量 三字节组, 字节型, , "3"
.局部变量 四字节组, 字节型, , "4"
.局部变量 编码值
.局部变量 X
.局部变量 n
.局部变量 二进制数据, 字节集
编码文本 = 删全部空 (编码文本)
编码文本 = 子文本替换 (编码文本, #换行符, , , , 真)
文本长度 = 取文本长度 (编码文本)
整倍数 = 文本长度 \ 4
.如果真 (文本长度 % 4 ≠ 0)
整倍数 = 整倍数 + 1
.如果真结束
.计次循环首 (整倍数, X)
.计次循环首 (4, n)
四字节组 [n] = 取代码 (编码文本, (X - 1) × 4 + n)
编码值 = 寻找文本 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”, 字符 (四字节组 [n]), , 假)
.如果真 (编码值 = -1)
跳出循环 ()
.如果真结束
四字节组 [n] = 编码值 - 1
.计次循环尾 ()
三字节组 [1] = 位或 (四字节组 [1] × 4, 四字节组 [2] ÷ 16)
三字节组 [2] = 位或 (四字节组 [2] × 16, 四字节组 [3] ÷ 4)
三字节组 [3] = 位或 (四字节组 [3] × 64, 四字节组 [4])
二进制数据 = 二进制数据 + 到字节集 (三字节组)
处理事件 ()
.计次循环尾 ()
.如果真 (n < 5) ' 最后一组4字符是提前退出的,截取字节集
n = 5 - n
二进制数据 = 取字节集左边 (二进制数据, 取字节集长度 (二进制数据) - n)
.如果真结束
返回 (二进制数据)
用WordKey恢复Word密码 “WordKey”是一款著名的Word密码恢复工具,可以通过“暴力破解”、“字典破解”等方法,快速将Word文档中的密码恢复出来。所以当忘记Word文档密码后,“WordKey”就可以帮上大忙啦! 找回office文件密码 office是使用最为普遍的办公软件,工作繁忙的你,难免出现各种意外,比如对重要的WORD文档加密后却把密码忘得一干二净,这是最让人恼火和着急的了。 但使用AOPR(全称是Advanced office 2000 password Recovery。 软件:Advanced Office XP Password Recovery Pro “Advanced Office Password Recovery”,是一个 Microsoft Office 文件的密码恢复工具。支持最新版本 Office 2003 中的所有组件,支持所有语言版本。非常好的,下载地址: ;ID=8444 就可以把office文档的密码很快找回来。就拿一个DOC文档做个演习。 1、安装上AOPR后,启动它,点击“FileName”右侧的打开文件夹图标,选择需要进行破解的文件。 2、“Type of attack”就使用默认的“Bruteforce attack”,然后是设置密码的长度和组成字符。 3、设置好以后点击工具栏上的“Start recovery”开始破解。稍后(时间长短跟设置的密码长度和组成的复杂度有很大的关系),密码就成功破解了。 AOPR不光可以破解WORD文件,它对EXCEL等OFFICE软件产生的文档密码都可以进行解码,方法也大致一样。
'这是我从网上找到的一段加密解密的代码,很不错,应该符合要求。
'文本框的multiline属性是用来设置是否可以接受多行文本,只能在窗体上手工设置。
'文本框的scrollbars属性是用来设置是否有垂直和水平滚动条的,也只能在窗体上手工设置。
'keyAscii不清楚是作什么用的。
'两个StrConv函数用的太好了,我没想到能处理的这么简单。
Option Explicit
Dim key() As Byte
Sub initkey() '这里为密匙,建议定义的复杂些,我这里仅仅是个示例
ReDim key(9)
key(0) = 12
key(1) = 43
key(2) = 53
key(3) = 67
key(4) = 78
key(5) = 82
key(6) = 91
key(7) = 245
key(8) = 218
key(9) = 190
End Sub
Function Pass_Encode(ByVal s As String) As String '加密
On Error GoTo myerr
initkey
Dim buff() As Byte
buff = StrConv(s, vbFromUnicode)
Dim i As Long, j As Long
Dim k As Long
k = UBound(key) + 1
For i = 0 To UBound(buff)
j = i Mod k
buff(i) = buff(i) Xor key(j)
Next
Dim mstr As String
mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim outstr As String
Dim temps As String
For i = 0 To UBound(buff)
k = buff(i) \ Len(mstr)
j = buff(i) Mod Len(mstr)
temps = Mid(mstr, j + 1, 1) + Mid(mstr, k + 1, 1)
outstr = outstr + temps
Next
Pass_Encode = outstr
Exit Function
myerr:
Pass_Encode = ""
End Function
Function Pass_Decode(ByVal s As String) As String '解密
On Error GoTo myerr
initkey
Dim i As Long, j As Long
Dim k As Long, n As Long
Dim mstr As String
mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim outstr As String
Dim temps As String
If Len(s) Mod 2 = 1 Then
Pass_Decode = ""
Exit Function
End If
Dim t1 As String
Dim t2 As String
Dim buff() As Byte
Dim m As Long
m = 0
For i = 1 To Len(s) Step 2
t1 = Mid(s, i, 1)
t2 = Mid(s, i + 1, 1)
j = InStr(1, mstr, t1)
k = InStr(1, mstr, t2)
n = j - 1 + (k - 1) * Len(mstr)
ReDim Preserve buff(m)
buff(m) = n
m = m + 1
Next
k = UBound(key) + 1
For i = 0 To UBound(buff)
j = i Mod k
buff(i) = buff(i) Xor key(j)
Next
Pass_Decode = StrConv(buff, vbUnicode)
Exit Function
myerr:
Pass_Decode = ""
End Function
Private Sub Command1_Click()
Text2.Text = Pass_Encode(Text1.Text)
Text3.Text = Pass_Decode(Text2.Text)
End Sub
网页链接进去自提
将需要打码的文字输入在上面的文本框里,点击『听佛说宇宙的真谛』按钮,就能在下面得到打码后的文字。
将需要解码的文字输入在下面的文本框里,记得带上『佛曰:』或『如是我闻:』的文字,点击『参悟佛所言的真意』按钮,就能在上面的文本框里得到解码后的文字。
顺便说下,为什么有时候会出现『太深奥了,参悟不出佛经的真意……』的情况,那是因为某些深井冰的网站(百度说的就是你!),会将繁体字转换为简体字,这样你复制后的文字已经不是最初的原文了,所以解不出。本佛祖的代言人已经尽力的去尝试参悟了,可惜还是有部分被篡改的佛语无能为力,十分抱歉o(﹏)o
你好
WPS文件解除加密,需要知道加密的密码,以WPS表格为例(WPS文字和WPS演示操作方法类似)操作步骤如下:
1、使用WPS表格打开加密文件;
2、单击“WPS表格”按钮;
3、在WPS表格菜单中选择“文件信息”菜单项的更多选项;
4、选择“文件加密”菜单项;
5、在打开的“选项”对话框中,将打开文件时的密码后和再次键入的密码全部删除;
6、单击“确定”按钮;
7、单击“快速工具栏”中的“保存”命令。