如何判断保存的值是加密还是解密?

时间:2013-06-21 18:04:22

标签: .net vba vbscript vb6 access-vba

我已经设法将某些内容构建到绑定的MS Access表单中,该表单根据客户端的请求对名称进行加密。此过程还会解密数据。我需要捕获所有查看输入中的内容,然后解密或加密数据。

非常确定有些东西可以循环显示名称并告诉它是否是常规字/字母。

这是未加密的名称: Mugger Teresa

这是加密的样子: μ`>±¤à¬pŽ³²ó

我几乎是正面的,因为Unicode没有打开,所以它们都是ASCII字符集的一部分。 我只想让我的代码能够取值并说:“加密”或“未加密”。 (真/假)。

3 个答案:

答案 0 :(得分:1)

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

在所有这些寻求者建议加密时,在前面标记一个值,可以轻松检查。那会有用。

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

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

相关问题