Encryption 如果使用以下加密/解密代码,反编译代码会启用解密吗?

Encryption 如果使用以下加密/解密代码,反编译代码会启用解密吗?,encryption,vb6,cryptography,decompiling,Encryption,Vb6,Cryptography,Decompiling,这个更简单:密钥只是计算机名,算法是众所周知的。因此,每个人,谁可以找到你的计算机名(这包括每个人在同一交换机,即使他的电脑被破坏,并取决于你的邮件系统,每个人你曾经发送邮件到)可以解密没有限制 如果你的电脑死机了,你给你的新安装取了一个不同的名字,你也会倒霉的 编辑 从讨论中可以看出:拥有硬编码的密钥、拥有反编译器以及同时拥有秘密密钥是不可能的 你的方法(使用不同于计算机的东西)是很好的,但是你应该依靠一些东西,这些东西不能像计算机名(或MAC地址…)那样容易读懂。处理器序列号或windows

这个更简单:密钥只是计算机名,算法是众所周知的。因此,每个人,谁可以找到你的计算机名(这包括每个人在同一交换机,即使他的电脑被破坏,并取决于你的邮件系统,每个人你曾经发送邮件到)可以解密没有限制

如果你的电脑死机了,你给你的新安装取了一个不同的名字,你也会倒霉的

编辑

从讨论中可以看出:拥有硬编码的密钥、拥有反编译器以及同时拥有秘密密钥是不可能的


你的方法(使用不同于计算机的东西)是很好的,但是你应该依靠一些东西,这些东西不能像计算机名(或MAC地址…)那样容易读懂。处理器序列号或windows产品ID出现在脑海中-这两者都不容易远程读取,但请记住,游戏结束了,如果有人可以访问此机器

这个更简单:密钥只是计算机名,算法是众所周知的。因此,每个人,谁可以找到你的计算机名(这包括每个人在同一交换机,即使他的电脑被破坏,并取决于你的邮件系统,每个人你曾经发送邮件到)可以解密没有限制

如果你的电脑死机了,你给你的新安装取了一个不同的名字,你也会倒霉的

编辑

从讨论中可以看出:拥有硬编码的密钥、拥有反编译器以及同时拥有秘密密钥是不可能的


你的方法(使用不同于计算机的东西)是很好的,但是你应该依靠一些东西,这些东西不能像计算机名(或MAC地址…)那样容易读懂。处理器序列号或windows产品ID出现在脑海中-这两者都不容易远程读取,但请记住,游戏结束了,如果有人可以访问此机器

如果我需要在代码中包含此项并将其保密,我可以使用什么作为“密钥”?如果我需要在代码中包含此项并将其保密,我可以使用什么作为“密钥”?听起来你好像在尝试实现某种DRM系统。DRM的第一条定律是它不起作用:如果你的用户的计算机能够解码数据,那么你的用户就可以自己获取数据。听起来你好像在尝试实现某种DRM系统。DRM的第一条定律是它不起作用:如果用户的计算机可以解码数据,那么用户就可以自己获取数据。
Option Explicit 

Dim sSecretData
sSecretData = "Here is some very secret data." 

' Build up the key
Dim wshNetwork, sComputerName
Set wshNetwork = WScript.CreateObject("WScript.Network") 
sComputerName = wshNetwork.ComputerName

Dim capEData
Set capEData = CreateObject("CAPICOM.EncryptedData")

capEData.Algorithm = 3 'Use 3DES
capEData.SetSecret sComputerName 
capEData.Content = sSecretData

Dim sCipherText
sCipherText = capEData.Encrypt

capEData.Algorithm = 3
capEData.SetSecret sComputerName 
capEData.Decrypt sCipherText

Dim sPlainText
sPlainText = capEData.Content 

MsgBox "Original data: " & sSecretData & chr(13) _ 
  & "Encrypted data: " & sCipherText & chr(13) _ 
  & "Recoverd data: " & sPlainText