一、Base64编码:把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换,编码表的大小为2^6=64,这也是Base64名称的由来。
二、Base64编码步骤
1)将所有字符转化为ASCII码
2)将ASCII码转化为8位二进制
3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位
4)统一在6位二进制前补两个0凑足8位
5)将补0后的二进制转为十进制
6)从Base64编码表获取十进制对应的Base64编码
三、转换举例
1)zyq
2)mzwu
为什么不会出现3个‘=’号呢,一个‘=’号代表一个空的占位符,而3个字符刚好转成4个Base64字符,呵呵。
四、Base64编码应用
1)图片大部分都是可以转换成Base64编码,直接使用。一般用来处理不大的图片,别的文件格式也可以,过大的base64其实意义不大了。
<img src="data:image/gif;base64,xxxxx..." />
2)将canvas保存时非常有用,参考http://www.nihilogic.dk/labs/canvas2image/,修改MIME头可以用于保存文件,如修改为image/octet-stream
var strDataURI = oCanvas.toDataURL(); // returns "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."
学习某位大神猜解加密串的文章,这里做个记录,http://bbs.blackbap.org/thread-3973-1-1.html。。。
----------------------------------------------------
GCV15/bVem29Cu9CiBpP+w GCV15/bVem29Cu9CiBpP+w E5Ia47UWnXs19vyWWsjKbg Q3GN6LRsX/ba1eJUEQqLeA Dhvt8khDDmpERqXcsUhtWQ
以E5Ia47UWnXs19vyWWsjKbg为例,可能这么看看不出什么效果,那我们换个姿势看:E5Ia47UWnXs19vyWWsjKbg==,不过有人会问,长的像又不表示这就是base64。
走个流程熟悉一下,先按照Base64的加密方式反向解密,得到二进制,如果按照ascii码来转,则很多事无意义的字符,那么按照十六进制转换来看看
00010011 13 10010010 92 00011010 1A 11100011 E3 10110101 B5 00010110 16 10011101 9D 01111011 7B 00110101 35 11110110 F6 11111100 FC 10010110 96 01011010 5A 11001000 C8 11001010 CA 01101110 6E
得到:13921AE3B5169D7B35F6FC965AC8CA6E,看着眼熟吧,就是MD5加密后的结果,MD5解密的网站有很多,一般都可以破解,但有些密码破解需要收费的。
#########################################################
一、MD5:Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法、摘要算法等),主流编程语言普遍已有MD5的实现。将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理,MD5的前身有MD2、MD3和MD4。虽然已被破解,但仍然具有较好的安全性,加之可以免费使用,所以仍广泛运用于数字签名、文件完整性验证以及口令加密等领域。
二、32位与16位MD5加密的区别:16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了。
字符串:abc MD5(16位):3CD24FB0D6963F7D MD5(32位):900150983CD24FB0D6963F7D28E17F72
--------------------------------------
Base64加解密,http://base64.xpcha.com/
MD5加密,http://tool.chinaz.com/Tools/MD5.aspx
MD5解密,http://www.cmd5.com/
-----------------------------------------
ASCII码对照表
相关推荐
基于openssl静态库的DES+base64+MD5的加解密C++Demo,其中DES采用ECB模式,pkcs5padding的填充方法;兼容JAVA,C#的DES,可应用于与网络服务器通信过程中的加解密,并且已经验证OK。 与C#/java互通的DES加密解密代码。
crypto 包含 md5 XXTEA sha1 base64 四种加密解密算法,已简化接口,方便应用,可以直接应用于各种资源打包加密过程
8 Base64编码解码 里面包含pb的调用demo">1 以非图片方式在Datawindow中显示QR二维码 2 GBK和UTF 8编码相互转换 3 加密解密 RSA加密解密 4 取汉字拼音首字母 5 文件哈希算法:MD5 SHA1 RIPEMD160 SHA256 Tiger SHA...
可以攻玉1094.1 加固你的系统1094.2 加密组件Bouncy Castle 1114.3 辅助工具...5 模型分析1375.6 Base64算法实现1385.7 Url Base64算法实现1475.8 应用举例1515.9 小结153第6章验证数据完整性—消息摘要算法1556.1 消息...
第5章电子邮件传输算法—Base64 134 5.1 Base64算法的由来134 5.2 Base64算法的定义134 5.3 Base64算法与加密算法的关系135 5.4 实现原理136 5.5 模型分析137 5.6 Base64算法实现138 5.7 Url Base64算法实现147 5.8 ...
MD5 MD5 MiscUtils 设备信息的获取 NetWorkUtils 网络状态 PhoneUtil 手机组件调用工具类 PreferencesUtils sp工具类 RandomUtils 随机数工具类 RecorderControl 录音工具类 SerializeUtils Serialize ShellUtils ...
共有:Socket的通信、Base64加密与解密、MD5码验证、分包思想解决大文件传输问题、Toast提醒的应用 个人建议:最好通过源码自行设计最适合自己的操作方式,因为自己制作的东西才是最适合自己的,不用依赖任何人。
(1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为MD5Arithmetic。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个TextBox 控件,分别用来输入 要加密的数据和...
加密解密,如MD5、BASE64,AES、DES等 - 4.文件操作,包括file、image、zip等 - 5.http - 6.jdbc - 7.json - 8.邮件 - 9.二维码、条形码 - 10.web Java常用工具类大全,工作5年精心整理(最新版)
3DES解密Base64编码密文 decryptBase64_3DES 3DES解密16进制密文 decryptHexString3DES 3DES解密 decrypt3DES AES加密后转为Base64编码 encryptAES2Base64 AES加密后转为16进制 encryptAES2HexString AES加密 ...
PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。 复制代码 代码如下:function encryptDecrypt($key, $string, $decrypt){ if($...
*内置一批动态参数,可应用于URL、页头、参数(如生成随机数、URL编码、MD5、AES、Base64加密解密、时间戳/日期转换、内循环、文件流、HTML转义等); *支持自定义常量设置; *支持协议的代理与模拟环境参数设置(解决...
function Integer Base64EnCode(string as_code,string CodeTable,ref str_DelphiResult Result) library 'extlib.dll' ALIAS FOR "Base64EnCode;Ansi" //base64解码 function Integer Base64DeCode(string as_code,...
MbedTLS源码,包含aes,64base,pk,md5,rsa,对称性,非对称性加解密算法,公钥,私钥生成,以STM32F4为实例应用,各算法均有测试用例
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
UReflection库一个轻量级的android库,可以快速集成到任何应用程序中以使用android utils。...Base64解密。 在Play商店上获取应用网址。 获取国家代码。 获取当前日期。 获取当前时间。 获取应用哈希键。 取得装置
如字母大小写互转、全半角互转、繁简体互转、大陆的GBK编码和台湾的Big5编码互转、汉字转为拼音、URL编解码(支持UTF-8)、Base64编解码(邮件标准)、RTF丰富文本(码)到纯文本、获取数据摘要(md5、md4、crc32、...