base64加密比原来的数据长度增加多少
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64加密比原来的数据长度增加多少相关的知识,希望对你有一定的参考价值。
首先Base64不是一种加密方式,只是一种编码。。然后长度呢,就是原来长度 * (4 / 3),不计最后一个或两个等于号的话。 参考技术ABase64加密方式是将原文经过简单的字符转换,转换成不容易被肉眼看出的字符编码,Base64加密常用在HTTP环境下传递较长的标识信息确保不破坏HTTP的请求格式,Base64的加密原理是将3个8位二进制转换为4个6位二进制,不足6位时高位补0 ,以确保其值为64个可能,这就是Base64来源。
如下图就是Base64标准中的编码表。
参考技术B Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。本回答被提问者和网友采纳利用base64函数,对文件进行转码加密
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的内容就是通过base64转码后传输的。Base64-encoded后, 数据要比原始数据多占用 33% 左右的空间。
利用base64加密文件:
<?php //写文件路径 $file_url = ‘upload/iampdf.pdf‘; $file_encoded = ‘encoded/iampdf.pdf‘; //获取文件数据 $data = file_get_contents($file_url); //转码加密 $data_encode = base64_encode($data); //保存加密后的文件 file_put_contents($data_encode,$file_encoded ); ?>
解密base64加密后的文件:
<?php$file_url = ‘upload/iampdf.pdf‘; $file_encoded = ‘encoded/iampdf.pdf‘;//读取文件数据 $data_encode = file_get_contents($file_encoded); //解密 $data = base64_decode($data); //保存解密后的文件 file_put_contents($data,$file_url); ?>
其实上面的操作还算不上加密,只要懂解码分分钟可以获取原文件。所以,有兴趣的可以再对转码后的文件进行字符串位移、转换等操作,那样就做到真正的加密了。
本人博客:利用base64函数,对文件进行转码加密
http://www.wangtuizhijia.com/archives/333
以上是关于base64加密比原来的数据长度增加多少的主要内容,如果未能解决你的问题,请参考以下文章