| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 684 人关注过本帖
标题:如何解开这个加密算法
只看楼主 加入收藏
yang35343
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
如何解开这个加密算法
两组16进制的数,根据前面的10位得出后面的4位
都是有对应关系的,
一直没有搞明白前10位的数跟后4位的数是什么算法关系
谁能帮我解出这个加密算法,给予重谢!
不但有虚拟的奖励还可以有现实的奖励!!!
有答案者邮箱通知  2464128@
例如:
0000000001    对应 3331
0000000002    对应 6662
0000000003    对应 5553
0000000004    对应 CCC4
0000000005    对应 FFF5
0000000006    对应 AAA6

0000000101    对应 0401
0000000201    对应 5D51
0000000301    对应 6A61
0023537501    对应 0848  
0023537510    对应 380A
0010031103    对应 BE86
搜索更多相关主题的帖子: 加密 如何 
2014-03-24 12:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
谁能帮我解出这个加密算法,给予重谢!
------ 说实话,这题不难,短短几行代码就能搞定,但我极其想知道你的“重谢”是什么,呵呵。
0000000007    对应 9997 对吧?!
0000123456    对应 4BB3 对吧?!

程序代码:
unsigned short foo( unsigned long long n )
{
    unsigned long long r = n<<8;
    for( unsigned i=0; i<64; ++i )
    {
        “重谢”是啥呐,好期待吆^_^
    }
    return (unsigned short)(r>>48);
}

#include <stdio.h>
#include <assert.h>

int main()
{
    assert( foo(0x0000000001) == 0x3331 );
    assert( foo(0x0000000002) == 0x6662 );
    assert( foo(0x0000000003) == 0x5553 );
    assert( foo(0x0000000004) == 0xCCC4 );
    assert( foo(0x0000000005) == 0xFFF5 );
    assert( foo(0x0000000006) == 0xAAA6 );
    assert( foo(0x0000000101) == 0x0401 );
    assert( foo(0x0000000201) == 0x5D51 );
    assert( foo(0x0000000301) == 0x6A61 );
    assert( foo(0x0023537501) == 0x0848 );
    assert( foo(0x0023537510) == 0x380A );
    assert( foo(0x0010031103) == 0xBE86 );

    printf( "%04hX\n", foo(0x0000000007) ); // 输出 9997
    printf( "%04hX\n", foo(0x0000123456) ); // 输出 4BB3

    return 0;
}
  
2014-03-25 16:28
风絮满城
Rank: 1
来 自:哈尔滨工业大学
等 级:新手上路
帖 子:6
专家分:6
注 册:2014-3-24
收藏
得分:0 
回复 2楼 rjsp
2014-03-25 16:32
yang35343
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-24
收藏
得分:0 
回复 2楼 rjsp
你要什么重谢,你说啊
2014-03-25 20:49
yang35343
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-24
收藏
得分:0 
回复 2楼 rjsp
我是菜鸟,可能是很简单的问题,
只要帮我解决了问题,就是帮上了我忙,
就应该谢谢!
2014-03-25 21:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:20 
以下是引用yang35343在2014-3-25 20:49:13的发言:

你要什么重谢,你说啊
我什么都不要,我只是想看看你所谓的“重谢”是什么。但现在听你这么说,我猜到你当时也就是随口一说,并没有真想给出什么重谢。
0013054901 对应 E6C0
0030611401 对应 8F1A
0905096501 对应 DB68

程序代码:
unsigned short foo( unsigned long long n )
{
    unsigned long long r = n<<8;
    for( unsigned i=0; i<64; ++i )
        r = (r<<1) ^ (r&0x8000000000000000ull ? 0x1021000000000000ull : 0);
    return (unsigned short)(r>>48);
}

#include <stdio.h>
#include <assert.h>

int main()
{
    assert( foo(0x0000000001) == 0x3331 );
    assert( foo(0x0000000002) == 0x6662 );
    assert( foo(0x0000000003) == 0x5553 );
    assert( foo(0x0000000004) == 0xCCC4 );
    assert( foo(0x0000000005) == 0xFFF5 );
    assert( foo(0x0000000006) == 0xAAA6 );
    assert( foo(0x0000000101) == 0x0401 );
    assert( foo(0x0000000201) == 0x5D51 );
    assert( foo(0x0000000301) == 0x6A61 );
    assert( foo(0x0023537501) == 0x0848 );
    assert( foo(0x0023537510) == 0x380A );
    assert( foo(0x0010031103) == 0xBE86 );

    printf( "%04hX\n", foo(0x0013054901) ); // 输出 E6C0
    printf( "%04hX\n", foo(0x0030611401) ); // 输出 8F1A
    printf( "%04hX\n", foo(0x0905096501) ); // 输出 DB68

    return 0;
}

2014-03-26 08:22
yang35343
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-24
收藏
得分:0 
回复 6楼 rjsp
新给你的那3组数字,测试的对应结果是正确的,
应该你这个算法是对的吧
这个帖的分值给你,
另外再给你充值一笔话费或Q币之类的,表示我的诚意。
2014-03-26 11:00
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
回复 7楼 yang35343
谢谢你的好意,但不用了。我不需要这些,我只是想看看原本你想送什么来着。
2014-03-26 11:21
yang35343
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-24
收藏
得分:0 
回复 8楼 rjsp
非常感谢你!
虚拟的分值我怕大家动力不够,
所以才加了句现实的奖励,
说实话我还真想不出什么像样的奖励,
不过我心里是非常真心感谢你的!
在此再说声谢谢你!!!
2014-03-26 11:38
快速回复:如何解开这个加密算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018945 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved