| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1008 人关注过本帖
标题:AES加密 解密
只看楼主 加入收藏
rayrayray
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
AES加密 解密
不好意思请问各位

我看了在http://www.
发表的AES C代码想要更改做练习,但是解密结果遇到了一些问题,试过都无法解决
我希望加解密的KEY是吃一個文字檔2e5751b7cfd7f053cd29e946fb2649a4這種形式,
並且加密的資料為01數字,共為2千多bits數的文字檔,但是我解出來除了一開始是對的其他都是亂碼的情形。

---------------------------------------------------------------------------------------------------------------------------

[ 本帖最后由 rayrayray 于 2015-4-2 19:04 编辑 ]
搜索更多相关主题的帖子: 加密 
2015-03-31 15:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
估计没人会闲得去看你的代码,我就瞎说说

“一開始是對的其他都是亂碼的情形”
----- AES是分组加密,如果不是整组,你得确定实际的长度
2015-03-31 15:15
rayrayray
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-31
收藏
得分:0 
不好意思,16个区块各别给8位值显示出来还是不正确的
实在想不出来
int main() {
  int i;
  AES_Init();
   
  BYTE block[16];
  //for(i = 0; i < 16; i++)
    //block[i] = 0x11 * i;
    FILE* fptrir;
    char buffir[128];
    fptrir=fopen("ir.txt","rb");  
      fscanf(fptrir, "%s",buffir);
      printf("----------------%s-------------- \n",buffir);
    for(i = 0; i < 16; i++){
    fscanf(fptrir,"%d",(unsigned int *)&block[i]);
    //fscanf(fptrir,"%s",&block[i]);
      //printf("----------%d----------- ",block[i]);
    }
      fclose(fptrir);

[ 本帖最后由 rayrayray 于 2015-3-31 16:00 编辑 ]
2015-03-31 15:55
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
不懂AES加解密,不过自创一个加解密代码还是没问题的。

能编个毛线衣吗?
2015-03-31 18:06
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:5 
加密解密现在都很成熟。包括HMACSHA1和MD5等等。
建议: 没必要去深究这些问题。还是打好基础。学会封装和调用函数接口。到时候这个都是开源的,直接调用接口即可。
如果真的想学。那么解密出来的是16字节数,你打印需要转成字符串,也就是32字节。问题很多。而且这也属于C# 范围。
so 没必要去研究着问题。老老实实地的打好基础吧

授人以鱼,不如授人以渔
2015-03-31 18:13
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:5 
"金鑰"这是台湾话么?
好生硬的感觉
看起来比E语都难受……

Only the Code Tells the Truth             K.I.S.S
2015-03-31 19:30
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
还有啊
这个sctp.h文件是从哪个库里带出来的?

Only the Code Tells the Truth             K.I.S.S
2015-03-31 19:32
rayrayray
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-31
收藏
得分:0 
回复 楼主 rayrayray
有个问题 temp2表示明文
如果原本的代码是→unsigned char型TEMP2[32]={0×00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xdd,0xee,0xFF};

那我该如何照TEMP2的形式将TXT档值传入TEMP2呢

TXT档内容为00112233445566778899aabbccddeeff

而我写法是
unsigned char型buffhex[2050];
FILE * fptrhex=的fopen(“hex.txt”,“R”);
的fscanf(fptrhex,“%S”,buffhex);

  
  
unsigned char TEMP2[32];



的for(int i =0,J =0; i <16,J<32;i++,J = J+2){
TEMP2[i]=(0×10* buffhex[J])+(0×01* buffhex[J+1]);
}

但结果却与原本加密后的值不同
很疑惑
2015-04-01 17:50
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
回复 8楼 rayrayray
给你说了你这是字节加密  16个字节 你这儿传入的是字符串  字节是33个(有个截至符)。如果是网络发包就是32个  所以结果肯定不对。你要是非要在这个上面浪费时间 那没辙

授人以鱼,不如授人以渔
2015-04-01 17:55
rayrayray
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-31
收藏
得分:0 
謝謝各位的回覆 ,我已經解決囉
2015-04-02 19:03
快速回复:AES加密 解密
数据加载中...
 
   



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

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