飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2851|回复: 3

求助:易语言编写注册机排错(改正了一部分)--------排错完毕

[复制链接]
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1885 天

    [LV.Master]伴坛终老

    发表于 2007-11-15 19:11:36 | 显示全部楼层 |阅读模式
    .版本 2

    .程序集 窗口程序集1

    .子程序 _按钮1_被单击
    .局部变量 name, 文本型
    .局部变量 name_len, 整数型
    .局部变量 sum, 长整数型
    .局部变量 sum1, 文本型
    .局部变量 sum2, 整数型
    .局部变量 total, 整数型
    .局部变量 i, 整数型
    .局部变量 i2, 整数型
    .局部变量 c, 字节型
    .局部变量 d, 字节型
    .局部变量 n, 字节型
    .局部变量 table, 文本型
    .局部变量 sn, 文本型
    .局部变量 sn1, 文本型
    .局部变量 ma1, 整数型
    .局部变量 ma2, 整数型
    .局部变量 ma3, 文本型
    .局部变量 ma4, 文本型
    .局部变量 ma5, 文本型
    .局部变量 ma6, 文本型
    .局部变量 ma7, 整数型
    .局部变量 a, 长整数型
    .局部变量 b, 长整数型
    .局部变量 g, 长整数型
    .局部变量 h, 整数型
    .局部变量 j, 整数型
    .局部变量 k, 整数型
    .局部变量 l, 整数型
    .局部变量 m, 整数型
    .局部变量 常量1, 整数型
    .局部变量 常量2, 整数型
    .局部变量 常量3, 整数型

    (((name xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name/10+30) xor ADAC)*(i+2)/10+30
    table = 编辑框3.内容
    name = 编辑框1.内容
    name_len = 取文本长度 (name)
    .如果 (name_len ≥ 1)
        .判断循环首 (i ≤ name_len)
            i = i + 1
            h = 3 × i - 1
            j = i - 1
            k = i + 3
            c = 取代码 (name, i)
            d = 取代码 (table, h)
            total = total + c
            l = total × j
            a = 位异或 (c, d)
            b = 位异或 (l, 常量1)
            g = a + b + 常量2 + name_len × k × c % 16 + 48
            ma1 = 位异或 (g, 常量3) × (i + 2) % 16 + 48
            ma6 = 取十六进制文本 (ma1)
            ma7 = 到数值 (ma6) - 30
            ma4 = 到文本 (ma7) + 到文本 (ma4)
        .判断循环尾 ()
        ma2 = total × name_len % 100 + 48
        ma5 = 取十六进制文本 (ma2)
        ma3 = 到文本 (ma4) + “-” + 到文本 (ma5)

        m = 取文本长度 (ma3)
    .否则
        信息框 (“请输入用户名”, 0, “友好提示”)

    .如果结束
    .判断循环首 (i2 ≤ m)
        i2 = i2 + 2
        n = 取代码 (ma3, i2)
        sum = 位异或 (n, 2) % 10 + 48
        sum1 = 取十六进制文本 (sum)
        sum2 = 到数值 (sum1) - 30
        sn = 到文本 (sum2) + 到文本 (sn)

    .判断循环尾 ()
    sn1 = “T” + sn
    编辑框2.内容 = sn1

    程序算法:1.约定:用户名:name;  用户名长度:name_len; 固定码table:ABCDEFGHIJKLMNOPQRSTUVWXYZ;
    用户名每位的ASCII值相加结果,记为sum1;
    2.计算中间码1:以用户名长度值作为循环次数
    ((name xor table[3i-1]+sum1*(i-1) XOR FFFFFFFF+14d+name_len*(i+3)*name/10+30) xor ADAC)*(i+2)/10+30
    3.计算中间码2: sum1*name_len/64+30
    4.最终中间码:T+计算中间码1+"-"计算中间码2
    5.中间码还原为注册码:(name or 2)/A +30
    问题出在第一部分的循环上,算出的数值不对
    输入用户名:lvcaolhx,计算出中间码应为65006967,中间码为44(这一部分正确)
    请高手指点迷径!!!!!!

    优化代码后,再发上来


    更正后的地址:https://www.chinapyg.com/viewthr ... &extra=page%3D1

    注意的地方:E循环从0开始

    [ 本帖最后由 lvcaolhx 于 2007-11-17 08:02 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-11-15 20:49:57 | 显示全部楼层
    楼主改小一下字体吧,看得让人头晕/:012
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-11-15 21:10:43 | 显示全部楼层
    不能确定你的算法~~~出现死循环了肯定有问题啦```常量123也没赋值
    sn = “T” + 到文本 (sum) + 到文本 (sum)  //相当于任意用户名都是死定的注册码
    5.中间码还原为注册码:(name or 2)/A +30跟sum = 位异或 (n, 2) ÷ 10 + 30?一下10一会16进制的问题
    wan
    T343534363436343534353730
    如此修改可以得到注册码,当然我不确定你算法是否正确
    .版本 2

    table = 编辑框3.内容
    name = 编辑框1.内容
    name_len = 取文本长度 (name)
    .如果 (name_len ≥ 1)
        .判断循环首 (i ≤ name_len)
            h = 3 × i - 1
            j = i - 1
            k = i + 3
            c = 取代码 (name, i)
            d = 取代码 (table, h)
            total = total + c
            l = total × j
            a = 位异或 (c, d)
            b = 位异或 (l, 4294967295)
            g = a + b + 333 + name_len × k × c % 16 + 48
            ma1 = 位异或 (g, 44460) × (i + 2) % 16 + 48
            ma6 = 取十六进制文本 (ma1)
            ma4 = 到文本 (ma6) + 到文本 (ma4)
            i = i + 1
        .判断循环尾 ()

        ma2 = total × name_len % 100 + 48
        ma5 = 取十六进制文本 (ma2)
        ma3 = 到文本 (ma4) + “-” + 到文本 (ma5)

        m = 取文本长度 (ma3)
    .否则
        信息框 (“请输入用户名”, 0, “友好提示”)

    .如果结束
    .判断循环首 (i2 ≤ m)
        i2 = i2 + 1
        n = 取代码 (ma3, i2)
        sum = 位异或 (n, 2) ÷ 10 + 30
        sn = sn + 到文本 (sum)
        编辑框2.内容 = “T” + sn
    .判断循环尾 ()

    [ 本帖最后由 wan 于 2007-11-15 21:54 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 1885 天

    [LV.Master]伴坛终老

     楼主| 发表于 2007-11-17 08:04:53 | 显示全部楼层
    感谢WAN老兄的帮助
    问一个问题,怎样将字体调好?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表