Pages

Friday, 19 July 2013

把文件转换成base64编码

把二进制中的____替换成1111,然后把二进制变成base64编码,最后把base64变成一个压缩包文件.

这里我就十分好奇他到底如何把一个文件转换成base64编码,因为要是有些文件不想让人知道或者加密文件的话可以用这种方式进行加密.

于是我在网上搜索了一翻,找到了这个代码:

perl -e 'use MIME::Base64;open (FH," < /home/xuan/Pictures/wallpaper-2049694.jpg");print encode_base64($_) while (<FH>);' > file_base64
上面是把文件转换成base64的,下面是把base64还原成文件的:

shell >perl -e 'use MIME::Base64;open (FH,"< file_base64");print decode_base64($_) while (<FH>);' > file_exec
我测试了一下,发现的确可以进行转换,不过代码就是长了很多,于是想进行简化所以决定看看能不能用Ubuntu自带的base64进行加解密,结果果然可以,而且还更加方便,代码如下:

加密:

    base64 mozilla.tgz >b
前面的那个mozilla.tgz是要进行转换的文件,b是储存base64编码的文件,下面是解密代码:

    base64 -d b>c
其中b就是之前储存base64编码的文件,c是还原好的文件名.