我正在创建一个程序,我将用它来帮助我的客户恢复放在办公文档上的密码,如word和excel.该程序工作得很好,但它比你可以免费下载的类似产品慢很多.我想使用我自己的程序,因为我觉得你免费下载的很多都不是完全安全的,并且缺少我想要的一些控件.
更重要的是......我需要帮助弄清楚为什么我的程序如此慢.我用一个简单的3个字母的密码"TFX"创建了一个excel文档.我下载的程序找到密码的速度几乎和我点击"go"后放开鼠标按钮一样快.我的节目需要10分钟.这是3个字符的循环:
private string ThreeCharPass(string file, Microsoft.Office.Interop.Excel.Application exApp, char[] combarr)
{
for (int three = 0; three < combarr.Length; three++)
{
for (int two = 0; two < combarr.Length; two++)
{
for (int one = 0; one < combarr.Length; one++)
{
try
{
string pass = combarr[three].ToString() + combarr[two].ToString() + combarr[one].ToString();
exApp.Workbooks.Open(file, false, true, Type.Missing, pass, Type.Missing, true, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
return pass;
}
catch
{
}
}
}
}
return string.Empty;
}
Run Code Online (Sandbox Code Playgroud)
数组'combarr'是一个包含密码中所有可能字符的字符数组.它是在程序的早期基于用户选择的选项生成的.我认为问题必须在于我循环遍历数组以创建密码组合的方式,因为只有在这个3字符密码方法中,它花费超过5分钟,其他"专业"程序花费几秒钟.任何反馈将不胜感激!!
我一直想知道SQL注入是否仍然是日常普通网站的可能威胁,使用参数化SQL.(ASP.NET - '@ 0').
如果它仍然是一个威胁,那么破解者如何覆盖或绕过这些参数呢?
我需要为学校制作小程序,以蛮力破解不同类型的密码; 我正在寻找创建一个强力python代码,它将贯穿字母和字母数字密码的每个可能组合,并给我密码和破解所需的时间.
我用纯数字密码做了同样的事情,得到了这个:
import datetime as dt
Password4 = 123456
def crack_password():
start = dt.datetime.now()
for n in range(1000000):
password_guess = '{0:04d}'.format(n)
if password_guess == str(Password4):
end = dt.datetime.now()
print("Password found: {} in {}".format(password_guess, end - start))
break
guesses = crack_password()
Run Code Online (Sandbox Code Playgroud)
然后我尝试对字母/字母数字密码做一些类似的事情,但是无论我尝试什么都没有用:
import random
letters = [str(i) for i in range('a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p')]
s = [''.join([a,b,c,d,e,f,g,h]) for a in letters for b in letters for c in letters for d in letters for e in letters for f in letters for g …Run Code Online (Sandbox Code Playgroud) 我有一个程序,在执行特定操作之前提示输入 PIN。PIN 与可执行二进制文件一起存储、加密在本地配置文件中。用户输入 PIN,程序解密并与存储的值进行比较,如果它们相等,则确定,否则等。
我知道这种安全检查可能会被取证工具绕过,这些工具会改变二进制文件,实际上,在正确的位置将“==”更改为“!=”,以使所有错误的 PIN 通过我的测试例子。
这可能是一个愚蠢的问题,因为我从谷歌搜索的前 2 分钟就知道这是一个很大且具有挑战性的话题,但我仍然认为我应该首先检查我实际使用的语言/编译器的功能。那么,Go 是否有任何本机可用的功能来使这种攻击更难以成功执行?