![](/img/trans.png)
[英]How to determine if a macro was called by another macro in excel, and perform code accordingly
[英]How to mask excel macro code
我在excel宏中存储了以下内容: -
Sub Sales()
Dim StrSQl As String
Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56"
Set Db = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.recordset")
Db.connectionSTring = Con
Db.Open
StrSQl = "select myuc, sum (myac) as Amount from myabc.myqwerty where mydt >= 20100101 and mydt <= 20100831 group by (mycl)"
rs.Open StrSQl, Db, 3, 3
Sheet1.Cells(10, 1).CopyFromRecordset rs
rs.Close
Set rs = Nothing
Set cn = Nothing
End Sub
我想掩盖上面的用户名和密码即。 User Id=****;Password=*****
作为安全性的一部分。
那可能吗?
您最安全的选项 - 无论用户是否需要输入密码 - 都是为了保护您的整个宏代码
如果没有编写COM
插件,这将是安全的,因为您的代码将获得。 请注意,有些产品可以破解 VBA代码
Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56"
AARRGGHH! 你在想什么?
这是交易。 没有多少加密可以帮助你在这里,因为,如果Excel本身可以解密数据(它可以,否则连接永远不会),那么恶意类型也可以做到这一点。
正确的方法是向用户询问用户ID和密码,并使用该信息动态构建连接字符串。
这样,敏感信息仅存在于用户的头部并且(暂时)存在于他们正在使用的机器上(无论如何可能是他们的机器)。 它不在任何人都可以使用的Excel电子表格中。
而且,最重要的是,功能ID(在不同用户之间共享)几乎总是一个坏主意,因为它使审计成为一场噩梦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.