`
mingren135
  • 浏览: 68990 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Base64、MD5加解密及应用

阅读更多

一、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码对照表



 

  • 大小: 55.4 KB
  • 大小: 23 KB
  • 大小: 16.9 KB
  • 大小: 32.9 KB
  • 大小: 222.6 KB
分享到:
评论

相关推荐

    基于openssl的DES+base64+MD5的加解密C++Demo

    基于openssl静态库的DES+base64+MD5的加解密C++Demo,其中DES采用ECB模式,pkcs5padding的填充方法;兼容JAVA,C#的DES,可应用于与网络服务器通信过程中的加解密,并且已经验证OK。 与C#/java互通的DES加密解密代码。

    crypto 简化版加密解密代码

    crypto 包含 md5 XXTEA sha1 base64 四种加密解密算法,已简化接口,方便应用,可以直接应用于各种资源打包加密过程

    pbfunc外部函数扩展

    8 Base64编码解码 里面包含pb的调用demo"&gt;1 以非图片方式在Datawindow中显示QR二维码 2 GBK和UTF 8编码相互转换 3 加密解密 RSA加密解密 4 取汉字拼音首字母 5 文件哈希算法:MD5 SHA1 RIPEMD160 SHA256 Tiger SHA...

    Java加密与解密的艺术

    可以攻玉1094.1 加固你的系统1094.2 加密组件Bouncy Castle 1114.3 辅助工具...5 模型分析1375.6 Base64算法实现1385.7 Url Base64算法实现1475.8 应用举例1515.9 小结153第6章验证数据完整性—消息摘要算法1556.1 消息...

    Java加密与解密的艺术配书源代码

    第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 ...

    文件互传(自家用),含打包好的apk与jar,含该项目的AndroidStudio与Eclipse源码

    共有:Socket的通信、Base64加密与解密、MD5码验证、分包思想解决大文件传输问题、Toast提醒的应用 个人建议:最好通过源码自行设计最适合自己的操作方式,因为自己制作的东西才是最适合自己的,不用依赖任何人。

    c# 加密和解密相关代码

    (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为MD5Arithmetic。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个TextBox 控件,分别用来输入 要加密的数据和...

    java基础类库开发包,工作5年精心整理_Java常用工具类源码

    加密解密,如MD5、BASE64,AES、DES等 - 4.文件操作,包括file、image、zip等 - 5.http - 6.jdbc - 7.json - 8.邮件 - 9.二维码、条形码 - 10.web Java常用工具类大全,工作5年精心整理(最新版)

    Android开发人员不得不收集的代码

    3DES解密Base64编码密文 decryptBase64_3DES 3DES解密16进制密文 decryptHexString3DES 3DES解密 decrypt3DES AES加密后转为Base64编码 encryptAES2Base64 AES加密后转为16进制 encryptAES2HexString AES加密 ...

    非常实用的PHP常用函数汇总

    PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。 复制代码 代码如下:function encryptDecrypt($key, $string, $decrypt){  if($...

    调试大叔 v2.1.1.rar

    *内置一批动态参数,可应用于URL、页头、参数(如生成随机数、URL编码、MD5、AES、Base64加密解密、时间戳/日期转换、内循环、文件流、HTML转义等); *支持自定义常量设置; *支持协议的代理与模拟环境参数设置(解决...

    extlib.dll具体应用,PB10测试通过

    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,...

    stm32-mbedtls

    MbedTLS源码,包含aes,64base,pk,md5,rsa,对称性,非对称性加解密算法,公钥,私钥生成,以STM32F4为实例应用,各算法均有测试用例

    vc++ 应用源码包_1

    详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...

    vc++ 应用源码包_5

    详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...

    Android库可将android utils与注释一起使用。-Android开发

    UReflection库一个轻量级的android库,可以快速集成到任何应用程序中以使用android utils。...Base64解密。 在Play商店上获取应用网址。 获取国家代码。 获取当前日期。 获取当前时间。 获取应用哈希键。 取得装置

    灵者编辑器(GEdit) 2011.03.14.zip

    如字母大小写互转、全半角互转、繁简体互转、大陆的GBK编码和台湾的Big5编码互转、汉字转为拼音、URL编解码(支持UTF-8)、Base64编解码(邮件标准)、RTF丰富文本(码)到纯文本、获取数据摘要(md5、md4、crc32、...

Global site tag (gtag.js) - Google Analytics