VB 二分法查找并加密字符,只能加密第一个字符,哪错了(二分法密码)

2023-03-13 21:56:12 密语知识 思思

大哥,请把Txtencrypt.Text = "" 放在循环外面好不好?

我被你整死了,一句句往下读代码,然后发现每次循环开始Txtencrypt.Text 都被设为空值

到最后一个循环Txtencrypt.Text始终都被你设为空.然后在最后Txtencrypt.Text = Txtencrypt.Text aryencode(intmid)

当然只有1个字符

而且加密的结果不是第一个字符,而是最后一个...

另外对你的加密方式做下评判,很容易破解,建议用随机数进行加密,我写了两个这样的程序自己玩

最后一点建议,不要使用Txtencrypt.Text = Txtencrypt.Text aryencode(intmid)等类似的控件属性来进行操作,这样会使你的程序运行很慢

建议还是不要怕麻烦,定义一个变量来代入你的运算过程,最后在用Txtencrypt.Text显示出来

这样的旅行箱,怎么把密码破开呢?

其实真的可以一个个试,很多人不想一个个试的原因是,总共1000个数字,这个数字看起来很大,所以让很多人望而却步:

三个数字的密码锁有1000中排列方式,如果2秒试一个,也就2000秒,2000秒÷60=33.33分钟,也就是说,30分钟左右,就可以把1000中排列方式试一遍,而且用不上30分钟,因为试到一半就可以开了。这种方式叫做穷举。

还有一种二分法,也是穷举,如果运气好,可以省掉一半的时间和精力:第一步:从500开始往999试或者从500开始往000试,如果运气好,可能正确的密码刚好在试的那一半中,如果不正确,第二步,如果您是从500往000试的,结果没有在这里面,您可以在500-999的中间数字750开始往500试或者往999试,以此类推。

4位数字的密码,需要猜多少次?

10四次方10000次 四位密码每位都可能出现0~9十个数字,所以是10的四次方