本帖最后由 hjz713 于 2023-1-2 16:23 编辑
怎么说呢
就像一个服务器存着公钥(加密标记,用于表示文件的加密状态),用户这里存着私钥(密码)
当加密后,加密标记会存放在明文区,密码位于密文区。
在解密时会读入位于密文区的正确密码文本摘要,如果密码则读出的原始文件的数据信息一定会解密错误得到不正确的结果(比如乱码)。
以上是原理
[AppleScript] 纯文本查看 复制代码 .版本 2
.支持库 dp1
.如果真 (文件是否存在 (文件名编辑框.内容) = 假)
信息框 (“指定文件不存在!”, #确认钮 + #错误图标, “错误”)
返回 ()
.如果真结束
.如果真 (通用对话框2.打开 () = 假)
返回 ()
.如果真结束
密码文本摘要 = 取数据摘要 (到字节集 (密码编辑框.内容)) ' 取得密码文本的数据摘要信息。
检查 (取文本长度 (密码文本摘要) = 32) ' 数据摘要信息的长度必定为32个字符。
文件号 = 打开加密文件 (通用对话框2.文件名, #重写, , 密码编辑框.内容, 取数据类型尺寸 (#整数型)) ' 定义一个整数长度的明文区用作保存加密文件标记。
.如果真 (文件号 = 0)
信息框 (“创建加密文件失败!”, #确认钮 + #错误图标, “错误”)
返回 ()
.如果真结束
写出数据 (文件号, #加密文件标记) ' 由于定义了一个整数长度的明文区,所以标记整数会被写到明文区中
写出文本 (文件号, 密码文本摘要) ' 密码文本信息被写入到密文区,以防止破解者使用MD5字典反算密码。
待加密文件数据 = 读入文件 (文件名编辑框.内容)
写出文本 (文件号, 取数据摘要 (待加密文件数据)) ' 保存原文件数据的数据信息,以便解密时核对文件数据是否完整。
写出数据 (文件号, 待加密文件数据)
关闭文件 (文件号)
信息框 (“创建加密文件” + #左引号 + 通用对话框2.文件名 + #右引号 + “成功!”, #确认钮 + #信息图标, “成功”)
不多说了,自己研究一下
我自己也不太明白,稀里糊涂参考着网上的资料做的,注释刚加的
|