-1

我已经设法在绑定的 MS Access 表单中构建了一些东西,该表单根据客户的请求对名称进行加密。此过程还解密数据。我需要一个 catch all 来查看输入中的内容,然后解密或加密数据。

很确定有一些东西可以遍历名称并判断它是否是常规单词/字母。

这是未加密的名称:Mugger Teresa

这是加密后的样子: µ`›±¤à ¬pŽ³²ó

我几乎肯定两者都是 ASCII 字符集的一部分,因为 Unicode 没有打开。我只是希望我的代码能够获取该值并说:“已加密”或“未加密”。(真假)。

4

3 回答 3

1

好的,我将回答我自己的问题。当我问的时候我不知道,但我知道什么会起作用。我正在寻找一个逐个字符的循环遍历字符串,以查看其中是否有任何一个表示加密值。我发现我使用的加密将普通文本更改为 ASCII 的“扩展字符集”。(普通文本使用前 127 个字符)。因此,如果存在任何扩展字符,我会检查该循环。

在此过程中,搜索者建议在加密时将值标记在前面,以便轻松检查。那会奏效。

MarkJ 建议在显示或保存记录时设置未设置的公共布尔变量。可能会奏效。当然有效到足以试图反驳。

于 2013-06-24T23:33:49.037 回答
0

我将分享一个实践中的想法(不是我的)。当然,它可能不适用于您的情况,但还是看看吧。

前段时间在一个使用INI独占的老游戏中,看到大部分(但不是全部)都被加密了,而且所有加密文件都以“BINI”开头(不带引号)。这样解析器就知道它们是加密的。

你的情况是不同的,因为(如果我理解正确的话)只有一部分(仅限名称)被加密,但如果你遵循这个想法,并且如果你可以修改加密/解密的代码,那么你可以做类似的事情,即用一个或多个字符作为加密名称的前缀,例如Chr(128),当然在解密过程中跳过这个字符。

如果所有这些都有意义且适用,那么您的IsEncrypted功能可能是:

Public Function IsEncrypted(ByVal strThis As String) As Boolean
    If Asc(Mid(strThis, 1, 1)) = 128 Then IsEncrypted = True
End Function
于 2013-06-22T09:30:44.577 回答
0

您说“客户端可以使用绑定表单上输入旁边的按钮来加密或解密名称。” 你不能只跟踪按钮点击来确定数据是否加密吗?

只需使用模块级布尔变量 bIsEncrypted。首次加载表单时将为 False。在“加密/解密”按钮单击,只需执行“bEncrypted = Not bEncrypted”。因此,每次用户单击按钮时,值都会切换。

于 2013-06-22T17:09:37.453 回答