免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 11162 | 回复: 48
打印 上一主题 下一主题

[文本处理] 用awk写的base64编码脚本,大家帮忙修改一下! [复制链接]

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-25 05:58 |只看该作者 |倒序浏览
本帖最后由 bikkuri 于 2013-12-25 16:31 编辑

小弟刚开始学awk,用awk写了一个base64编码脚本,不知道为什么,这个脚本没有任何输出。

  1. #!/bin/sh
  2. base64encode()
  3. {
  4. /usr/bin/awk -- '
  5. function asc(char,l_found)
  6. {
  7.         for (i=32;i<127;i++){
  8.         if (sprintf("%c",i)==char) l_found=i;
  9.         }
  10.         return l_found;
  11. }

  12. function and(var,x,l_res,l_i)
  13. {
  14.         l_res=0;
  15.         for (l_i=0;l_i<8;l_i++){
  16.                 if (var%2==1 && x%2==1) l_res=l_res/2+128;
  17.                 else l_res/=2;
  18.                        var=int(var/2);
  19.                 x=int(x/2);
  20.         }
  21.         return l_res;
  22. }

  23. function lshift(var,x)
  24. {
  25.         while(x>0){
  26.         var*=2;
  27.         x--;
  28.         }
  29.         return var;
  30. }

  31. function rshift(var,x)
  32. {
  33.         while(x>0){
  34.         var=int(var/2);
  35.         x--;
  36.         }
  37.         return var;
  38. }

  39. BEGIN{
  40. BASE64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  41. result="";
  42. }

  43. {
  44.         while (length($0)>0){
  45.                 if (length($0)==1){
  46.                         byte1=asc(substr($0,1,1));
  47.                         byte2=0;
  48.                         byte3=0;
  49.                 }

  50.                 if (length($0)==2){
  51.                         byte1=asc(substr($0,1,1));
  52.                         byte2=asc(substr($0,2,1));
  53.                         byte3=0;
  54.                 }

  55.                 if (length($0)>=3){
  56.                         byte1=asc(substr($0,1,1));
  57.                         byte2=asc(substr($0,2,1));
  58.                         byte3=asc(substr($0,3,1));
  59.                 }

  60.                 base1=rshift(byte1,2);
  61.                 base2=lshift(and(byte1,3),4)+rshift(and(byte2,240),4);
  62.                 base3=lshift(and(byte2,15),2)+rshift(and(byte3,192),6);
  63.                 base4=and(byte3,63);

  64.                 if (length($0)==1){
  65.                         result=result substr(BASE64,base1+1,1);
  66.                         result=result substr(BASE64,base2+1,1);
  67.                         result=result "==";
  68.                         $0="";
  69.                 }

  70.                 if (length($0)==2){
  71.                         result=result substr(BASE64,base1+1,1);
  72.                         result=result substr(BASE64,base2+1,1);
  73.                         result=result substr(BASE64,base3+1,1);
  74.                         result=result "=";
  75.                         $0="";
  76.                 }

  77.                 if (length($0)>=3){
  78.                         result=result substr(BASE64,base1+1,1);
  79.                         result=result substr(BASE64,base2+1,1);
  80.                         result=result substr(BASE64,base3+1,1);
  81.                         result=result substr(BASE64,base4+1,1);
  82.                         $0=substr($0,4);
  83.                 }
  84.         }

  85.         printf "%s",result;
  86. }
  87. '
  88. }
  89. base64encode
复制代码
  1. root@unknown:/tmp/test# ./base64encode.sh Hello
  2. root@unknown:/tmp/test# echo Hello|./base64encode.sh
  3. root@unknown:/tmp/test#
复制代码
究竟是什么地方不对呢?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2013-12-25 10:10 |只看该作者
回复 1# bikkuri

1. please indent your code to debug easily

2. your awk code just have function and BEGIN block
   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
3 [报告]
发表于 2013-12-25 12:16 |只看该作者
I have modified the code as you advised but still there is no output.

回复 2# jason680


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2013-12-25 13:38 |只看该作者
本帖最后由 jason680 于 2013-12-25 13:42 编辑

回复 3# bikkuri

It seems fine on Solaris with some modified
/usr/bin/awk ==> /usr/xpg4/bin/awk

$ echo Hello | ./base64encode.sh

Base64 encoded: SGVsbG8=


got some error without modified

$ echo Hello | ./base64encode.sh
awk: syntax error near line 2
awk: bailing out near line 2

   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
5 [报告]
发表于 2013-12-25 14:42 |只看该作者
It's good to know it works on Solaris.
So it has problem with Busybox only.
What might be the possible problem?


回复 4# jason680


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2013-12-25 14:59 |只看该作者
回复 5# bikkuri

debug by yourself

1. simple code with print $0 only
/usr/bin/awk -- '
{print $0}
'

2. add the BEGIN block
/usr/bin/awk -- '
  BEGIN{...}
{print $0}
'

3. add function block one by one
/usr/bin/awk -- '
  function x(){...}
  BEGIN{...}
{print $0}
'

3. ...

   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
7 [报告]
发表于 2013-12-25 15:10 |只看该作者
本帖最后由 Herowinter 于 2013-12-25 15:12 编辑

回复 1# bikkuri

开始有这个错误,好象是说and lshift rshift是内建函数,
不能重定义;
  1. ./base64.sh Hello
  2. awk: cmd. line:9:     function and(var,x,l_res,l_i)
  3. awk: cmd. line:9:              ^ `and' is a built-in function, it cannot be redefined
  4. awk: cmd. line:21:     function lshift(var,x)
  5. awk: cmd. line:21:              ^ `lshift' is a built-in function, it cannot be redefined
  6. awk: cmd. line:30:     function rshift(var,x)
  7. awk: cmd. line:30:              ^ `rshift' is a built-in function, it cannot be redefined
复制代码
然后我把and  lshift rshift改名为
base64_and, base64_lshift,  base64_rshift好像就有输出了
  1. ./base64.sh Hello
  2. Hello

  3. Base64 encoded: SGVsbG8=World

  4. Base64 encoded: SGVsbG8=V29ybGQ=Magic

  5. Base64 encoded: SGVsbG8=V29ybGQ=TWFnaWM=
复制代码
不理解base64算法,不知道结果对不对。
测试环境:CentOS release 6.4   GNU Awk 3.1.7






   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
8 [报告]
发表于 2013-12-25 16:26 |只看该作者

把函数and、lshift和rshift改名为base64_and、base64_lshift和base64_rshift以后确实在Linux和Busybox上都能正常输出了!
谢谢Jason680和Herowinter的指点!


回复 7# Herowinter


   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
9 [报告]
发表于 2013-12-25 16:53 |只看该作者
本帖最后由 bikkuri 于 2013-12-25 16:54 编辑

但是貌似在Busybox下还是有问题!
在处理ASCII纯文本的时候没有问题。
  1. root@unknown:/tmp/test# echo Hello|./base64encode.sh
  2. SGVsbG8=root@unknown:/tmp/test#
复制代码
但是在处理二进制文件的时候输出就不正常了。
我先将一个纯文本文件压缩成gz文件,然后用这个程序将其base64编码。
这时的输出明显偏大,原来的gz文件只有26字节,按照base64编码的规则,每3个源字节将被编码为4个目标字节,正确的编码后的长度应该在36字节左右。
而这个程序的输出居然是132字节!
再用base64解码脚本(该base64解码脚本经验证在Busybox上工作正常,详见另贴:http://bbs.chinaunix.net/thread-4115796-1-3.html
将这个132字节的base64编码文件解码出来的gz文件已经是86字节,而且也不可能用gzip解压恢复到最初的纯文本文件了。
  1. root@unknown:/tmp/test# ls -l
  2. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  3. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  4. root@unknown:/tmp/test# echo "Hello" > a
  5. root@unknown:/tmp/test# ls -l
  6. -rw-r--r--    1 root     root             6 Dec 25 16:38 a
  7. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  8. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  9. root@unknown:/tmp/test# gzip a
  10. root@unknown:/tmp/test# ls -l
  11. -rw-r--r--    1 root     root            26 Dec 25 16:39 a.gz
  12. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  13. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  14. root@unknown:/tmp/test# cat a.gz|./base64encode.sh > a.64
  15. root@unknown:/tmp/test# ls -l
  16. -rw-r--r--    1 root     root           132 Dec 25 16:39 a.64
  17. -rw-r--r--    1 root     root            26 Dec 25 16:39 a.gz
  18. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  19. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  20. root@unknown:/tmp/test# cat a.64|./decode.sh > b.gz
  21. root@unknown:/tmp/test# ls -l
  22. -rw-r--r--    1 root     root           132 Dec 25 16:39 a.64
  23. -rw-r--r--    1 root     root            26 Dec 25 16:39 a.gz
  24. -rw-r--r--    1 root     root            86 Dec 25 16:40 b.gz
  25. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  26. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  27. root@unknown:/tmp/test# gzip -cd b.gz > b
  28. root@unknown:/tmp/test# ls -l
  29. -rw-r--r--    1 root     root           132 Dec 25 16:39 a.64
  30. -rw-r--r--    1 root     root            26 Dec 25 16:39 a.gz
  31. -rw-r--r--    1 root     root             0 Dec 25 16:40 b
  32. -rw-r--r--    1 root     root            86 Dec 25 16:40 b.gz
  33. -rwxr-xr-x    1 root     root          1792 Dec 25 16:27 base64encode.sh
  34. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  35. root@unknown:/tmp/test#
复制代码

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
10 [报告]
发表于 2013-12-25 17:31 |只看该作者
本帖最后由 bikkuri 于 2013-12-26 00:42 编辑

我在原来的程序里加了几句用来debug:
  1. #!/bin/sh
  2. base64encode()
  3. {
  4. /usr/bin/awk -- '
  5. function asc(char,l_found)
  6. {
  7.         l_found=0;
  8.         for (i=0;i<=255;i++){
  9.         if (sprintf("%c",i)==char) l_found=i;
  10.         }
  11.         return l_found;
  12. }

  13. function base64_and(var,x,l_res,l_i)
  14. {
  15.         l_res=0;
  16.         for (l_i=0;l_i<8;l_i++){
  17.                 if (var%2==1 && x%2==1) l_res=l_res/2+128;
  18.                 else l_res/=2;
  19.                        var=int(var/2);
  20.                 x=int(x/2);
  21.         }
  22.         return l_res;
  23. }

  24. function base64_lshift(var,x)
  25. {
  26.         while(x>0){
  27.         var*=2;
  28.         x--;
  29.         }
  30.         return var;
  31. }

  32. function base64_rshift(var,x)
  33. {
  34.         while(x>0){
  35.         var=int(var/2);
  36.         x--;
  37.         }
  38.         return var;
  39. }

  40. BEGIN{
  41. BASE64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  42. result="";
  43. }

  44. {
  45.         while (length($0)>0){
  46. printf "Source: %s Length: %i\n",$0,length($0);
  47.                 if (length($0)==1){
  48.                         byte1=asc(substr($0,1,1));
  49.                         byte2=0;
  50.                         byte3=0;
  51.                 }

  52.                 if (length($0)==2){
  53.                         byte1=asc(substr($0,1,1));
  54.                         byte2=asc(substr($0,2,1));
  55.                         byte3=0;
  56.                 }

  57.                 if (length($0)>=3){
  58.                         byte1=asc(substr($0,1,1));
  59.                         byte2=asc(substr($0,2,1));
  60.                         byte3=asc(substr($0,3,1));
  61.                 }

  62.                 base1=base64_rshift(byte1,2);
  63.                 base2=base64_lshift(base64_and(byte1,3),4)+base64_rshift(base64_and(byte2,240),4);
  64.                 base3=base64_lshift(base64_and(byte2,15),2)+base64_rshift(base64_and(byte3,192),6);
  65.                 base4=base64_and(byte3,63);
  66. printf "byte1=%i byte2=%i byte3=%i\n", byte1, byte2, byte3;
  67. printf "base1=%i base2=%i base3=%i base4=%i\n", base1, base2, base3, base4;
  68.                 if (length($0)==1){
  69.                         result=result substr(BASE64,base1+1,1);
  70.                         result=result substr(BASE64,base2+1,1);
  71.                         result=result "==";
  72.                         $0="";
  73.                 }

  74.                 if (length($0)==2){
  75.                         result=result substr(BASE64,base1+1,1);
  76.                         result=result substr(BASE64,base2+1,1);
  77.                         result=result substr(BASE64,base3+1,1);
  78.                         result=result "=";
  79.                         $0="";
  80.                 }

  81.                 if (length($0)>=3){
  82.                         result=result substr(BASE64,base1+1,1);
  83.                         result=result substr(BASE64,base2+1,1);
  84.                         result=result substr(BASE64,base3+1,1);
  85.                         result=result substr(BASE64,base4+1,1);
  86.                         $0=substr($0,4);
  87.                 }
  88. printf "Result=%s\n", result;
  89.         }

  90.         printf "%s",result;
  91. }
  92. '
  93. }
  94. base64encode
复制代码
输出的结果如下:
  1. root@unknown:/tmp/test# cat a.gz|./base64encode.sh > a.gz.encode
  2. root@unknown:/tmp/test# ls -l
  3. -rw-r--r--    1 root     root           124 Dec 25 16:59 a.64
  4. -rw-r--r--    1 root     root            26 Dec 25 16:59 a.gz
  5. -rw-r--r--    1 root     root           915 Dec 25 17:14 a.gz.encode
  6. -rwxr-xr-x    1 root     root          1983 Dec 25 17:14 base64encode.sh
  7. -rwxr-xr-x    1 root     root           748 Dec 25 16:34 decode.sh
  8. root@unknown:/tmp/test# cat a.gz.encode
  9. Source: ^_‹^H
  10. byte1=31 byte2=0 byte3=8
  11. base1=7 base2=48 base3=0 base4=8
  12. Result=HwAI
  13. HwAISource: &thorn;^M&raquo;R^B^CóH&Iacute;&Eacute;&Eacute;&ccedil;^B
  14. byte1=0 byte2=13 byte3=0
  15. base1=0 base2=0 base3=52 base4=0
  16. Result=HwAIAA0A
  17. Source: R^B^CóH&Iacute;&Eacute;&Eacute;&ccedil;^B
  18. byte1=82 byte2=2 byte3=3
  19. base1=20 base2=32 base3=8 base4=3
  20. Result=HwAIAA0AUgID
  21. Source: óH&Iacute;&Eacute;&Eacute;&ccedil;^B
  22. byte1=0 byte2=72 byte3=0
  23. base1=0 base2=4 base3=32 base4=0
  24. Result=HwAIAA0AUgIDAEgA
  25. Source: &Eacute;&Eacute;&ccedil;^B
  26. byte1=0 byte2=0 byte3=0
  27. base1=0 base2=0 base3=0 base4=0
  28. Result=HwAIAA0AUgIDAEgAAAAA
  29. Source: ^B
  30. byte1=2 byte2=0 byte3=0
  31. base1=0 base2=32 base3=0 base4=0
  32. Result=HwAIAA0AUgIDAEgAAAAAAg==
  33. HwAIAA0AUgIDAEgAAAAAAg==Source: ^V5–1^F
  34. byte1=22 byte2=53 byte3=0
  35. base1=5 base2=35 base3=20 base4=0
  36. Result=HwAIAA0AUgIDAEgAAAAAAg==FjUA
  37. Source: 1^F
  38. byte1=49 byte2=6 byte3=0
  39. base1=12 base2=16 base3=24 base4=0
  40. Result=HwAIAA0AUgIDAEgAAAAAAg==FjUAMQY=
  41. HwAIAA0AUgIDAEgAAAAAAg==FjUAMQY=HwAIAA0AUgIDAEgAAAAAAg==FjUAMQY=HwAIAA0AUgIDAEgAAAAAAg==FjUAMQY=
复制代码
看来编码程序处理的源字节和文件里的完全不一样啊。
我用Ultraedit看到原来的a.gz里的二进制字节如下:
  1. 1F 8B 08 00 FE 0D BB 52 02 03 F3 48 CD C9 C9 E7
  2. 02 00 16 35 96 31 06 00 00 00
复制代码
为什么会有这样的差别呢?

回复 9# bikkuri


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP