base64加密比原来的数据长度增加多少

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64加密比原来的数据长度增加多少相关的知识,希望对你有一定的参考价值。

首先Base64不是一种加密方式,只是一种编码。。然后长度呢,就是原来长度 * (4 / 3),不计最后一个或两个等于号的话。 参考技术A

Base64加密方式是将原文经过简单的字符转换,转换成不容易被肉眼看出的字符编码,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加密比原来的数据长度增加多少的主要内容,如果未能解决你的问题,请参考以下文章

iOS 几种加密方法

iOS 几种加密方法

国密算法签名与加密结果字节长度变化及Hex与Base64编码长度变化

java的aes加密成多少位数

利用base64函数,对文件进行转码加密

开发中常见的加密方式及应用