Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何判断保存的值是加密的还是解密的?_.net_Vba_Ms Access_Vbscript_Vb6 - Fatal编程技术网

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

.net 如何判断保存的值是加密的还是解密的?,.net,vba,ms-access,vbscript,vb6,.net,Vba,Ms Access,Vbscript,Vb6,我已经成功地将一些东西构建到绑定的MS Access表单中,该表单根据客户的请求对名称进行加密。这个过程也会对数据进行解密。我需要一个全面的,看看什么是在输入,然后解密或加密的数据 可以肯定的是,有一种东西可以通过名称循环,判断它是否是普通单词/字母 以下是未加密的名称: 抢劫犯特蕾莎 下面是加密后的外观: µ`›¨pŽ 我几乎肯定两者都是ASCII字符集的一部分,因为Unicode没有打开。 我只希望我的代码能够接受值并说:“是加密的”或“不是加密的”。(对/错)。我将分享实践中的一个想法(不

我已经成功地将一些东西构建到绑定的MS Access表单中,该表单根据客户的请求对名称进行加密。这个过程也会对数据进行解密。我需要一个全面的,看看什么是在输入,然后解密或加密的数据

可以肯定的是,有一种东西可以通过名称循环,判断它是否是普通单词/字母

以下是未加密的名称: 抢劫犯特蕾莎

下面是加密后的外观: µ`›¨pŽ

我几乎肯定两者都是ASCII字符集的一部分,因为Unicode没有打开。
我只希望我的代码能够接受值并说:“是加密的”或“不是加密的”。(对/错)。

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

不久前,在一个使用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
您说“客户端可以使用绑定表单上输入旁边的按钮对名称进行加密或解密。”难道您不能只跟踪按钮单击以确定数据是否加密吗


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

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

在所有这些过程中,探索者建议在加密时在前面标记一个易于检查的值。那就行了


MarkJ建议使用一个公共布尔变量,该变量在显示或保存记录时设置为未设置。可能有用。当然可以反驳。

我不明白。如果加密某个内容并将其保存到数据库中,则该内容已加密。如果你对所有数据都这样做,那么你就知道它们都是加密的。为什么你需要测试它?后者肯定不是,而是一些-可能是1252。问题是,如果您的程序必须在使用重音字符的国家/地区工作,则无法可靠地使用测试“仅包含值<127的字符”…后者是ASCII。它们被称为“扩展字符”。客户端能够使用绑定表单上输入旁边的按钮对名称进行加密或解密。这允许那些使用密钥(用户名/密码输入正下方的登录输入)的人看到该值,但我认为设计者不能看到,而且任何对SQL Server后端具有dba权限的管理员也不能看到。这是一个记录员工投诉和问题的数据库。大的。所以我建立了一个循环来查找字符的ASC值,如果它高于127,那么它就被加密了。ASCII表:加密方法是否固定?如果使用带有密钥的XOR“加密”,则加密和解密的过程相同。这样就不需要知道它是否加密,只需使用相同的方法即可。请注意,任何替换方法都只不过是模糊处理,而且很容易被破解。是的。但我需要能够判断值是否加密,因为它显示在其他表单上。例如,搜索表单。但是,是的,切换按钮或布尔值是一种方法。根据您所说的:如果其他表单直接从数据库读取数据,那么它是加密的。如果他们从另一个表格中阅读,他们可以检查布尔值(如果你公开的话)嗯。不知道我为什么回避这个。但是,你是对的。我以前也用过这种方法。现在,布尔值、ASCII检查或boojum树方法是静音的,因为搜索表单必须只使用输入的普通文本(名字、姓氏)搜索这些列。