如果没有 FLA 文件,很难为您提供具体的解决方案。我只能给你一句话。您的初始编译仍需要 Flash,您可以轻松获得 60 天的试用期。
解决方案之一是在 AS 类中将此密码外部化,但仍将其与 SWF 一起编译以获得更好的安全性(但不会太多,因为反编译器可以轻松找到密码)。
您需要找到密码编码的区域,假设它是一个带有 ActionScript 块的框架。假设声明就像
if (userEnteredPassword == "xyz")
{
//login success logic
}
您可以将其重写为
if (userEnteredPassword == appsetting.Settings.password )
{
//login success logic
}
然后在appsetting文件夹中创建一个 AS 文件 Settings.as :
class appsetting.Settings
{
public static var password:String = "xyz";
}
将 FLA 编译成 SWF,并确保没有错误。随后,您的 SWF 可能会在没有 Flash IDE 的情况下由 MTASC 更新。
因此,假设 SWF 和密码 AS 文件位于同一目录中,您的 MTASC 命令看起来像
mtasc.exe -swf your_swf_file.swf -cp ./ -out your_swf_with_new_password.swf
安全考虑
正如我之前所说,以纯文本形式存储的密码是错误的。一种轻微的方法是使用单向加密(如 MD5)对密码进行加密,然后您需要将加密的用户输入与加密的密码进行比较。这还需要加密库,您需要一些 Flash 知识才能这样做。
最好的解决方案是让服务器验证密码。您可以进行 http 调用并让服务器验证密码是否匹配,这样您就不会以任何形式公开密码。这种方法涉及更多。