读书人

为什么赫夫曼编码是不是都可以破解?解

发布时间: 2012-06-19 14:45:20 作者: rapoo

为什么赫夫曼编码是不是都可以破解?

C/C++ code
赫夫曼编码的破解既然已经公开了,那么还使用它干嘛呢比如:int  W[N]={5,30,9,10,16,20,8,12};char C[N]={'A','B','C','D','E','F','G','H'};现在我提供一份已经 加密过的二进制字符串(采用赫夫曼编码加密的),大家就可以写算法来破解啊,那使用它干嘛呢???问题2: 这个函数的参数HCode是 指向 二进制"010011"这种字符串,还是"ABCD"这种形式的字符串void HuffmanDecoding(HuffmanTree HT,char chars[],int n,char *HCode,HuffmanDecode &HD){//根据赫夫曼编码表解码    int f;    int i=0;    char *p=HCode;                                    //Huffman编码串工作指针    HD=(char *)malloc(strlen(HCode)*sizeof(char));    while(*p!='\0')    {        f=2*n-1;                                    //从根出发进行匹配        while(HT[f].lchild!=0&&HT[f].rchild!=0&&*p!='\0')        {//未到达叶端且编码串未处理完            if(*p=='0')f=HT[f].lchild;                //向左孩子下行            else if(*p=='1')f=HT[f].rchild;            //向右孩子下行            p++;                                    //下一编码符号        }        if(HT[f].lchild==0&&HT[f].rchild==0)        //下行遇叶结点            HD[i++]=chars[f-1];                        //得到该编码的字符        else return;                                //错误的编码,不能正确译码    }    HD[i]='\0';                                        //译码字符串结束符}




[解决办法]
楼主的概念有问题,霍夫曼编码根本不是加密算法,是压缩编码,和7z、rar一样,当然可以反向

现代化的加密算法,必然是即便你知道实现,但不知道密钥也无法破解的,如AES、RC6
[解决办法]
*p=='0'*p=='1'看到这两个就应该知道是什么

读书人网 >C语言

热点推荐