读书人

【转】BASE64Decoder小便

发布时间: 2012-12-24 10:43:13 作者: rapoo

【转】BASE64Decoder小解
BASE64Decoder小解(转)
2011-07-01 10:04

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。

这样说会不会太抽象了?不怕,我们来看一个例子:

转换前 aaaaaabb ccccdddd eeffffff
转换后 00aaaaaa 00bbcccc 00ddddee 00ffffff

应该很清楚了吧?上面的三个字节是原文,下面的四个字节是转换后的Base64编码,其前两位均为0。

转换后,我们用一个码表来得到我们想要的字符串(也就是最终的Base64编码),这个表是这样的:(摘自RFC2045)


try { byte[] KEY_DATA = {1,8,-49,-31,77,90,10,121,-14,109,107,38,29,68,59,5,82,49,31,42,-25,67,96,15}; Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); SecretKeySpec key = new SecretKeySpec(KEY_DATA, "DESede");//生成加密解密需要的Key cipher.init(Cipher.ENCRYPT_MODE, key); byte[] res = cipher.doFinal(data.getBytes());} catch (Exception e) { e.printStackTrace();}
----------------------------------------------------------

转自:http://blog.csdn.net/anhuixiaozi/archive/2011/03/02/6219337.aspx

读书人网 >编程

热点推荐