精华内容
下载资源
问答
  • Java 8 中 Base 64 java 8 在标准API中增加Base64功能,通过 java.util.Base64工具类: Java 8 基本 Base64 输入任意字符串,输出被映射到“A-Za-z0-9+/”字符集中(没有回车符、换行符),解密从该字符集中解析...

    Java 8 中 Base 64

    java 8 在标准API中增加Base64功能,通过 java.util.Base64工具类:

    Java 8 基本 Base64

    输入任意字符串输出被映射到“A-Za-z0-9+/”字符集中没有回车符、换行符解码从该字符集中解析为任意字符

    // 编码

    String asB64 = Base64.getEncoder().encodeToString("some string".getBytes("utf-8"));

    System.out.println(asB64); // 输出为: c29tZSBzdHJpbmc=

    // 解码

    byte[] asBytes = Base64.getDecoder().decode("c29tZSBzdHJpbmc=");

    System.out.println(new String(asBytes, "utf-8")); // 输出为: some string

    java 8 Base64编码没有填充情况

    如果Base64编码的二进制数据不是3的倍数,输出结果使用“=”号进行填充,所以结果会有一个或两个“=”号。

    解码是填充的“=”号会被丢弃。如果你去掉填充“=”,结果字符串可能不能被正确解码,可以简单使用编码没有填充方法:

    String encodedString =
      Base64
    .getEncoder().withoutPadding().encodeToString(originalInput.getBytes());

    Java 8 URL Base64

    使用URL和文件名安全Base64字母表(没有‘+’和‘/’,增加‘-’和‘_’来替换,没有回车符、换行符)

    用于对url拼接参数时不确定是否有特殊字符,选择先使用base64编码先对参数进行编码,然后再拼接到url上。

     

    String basicEncoded = Base64.getEncoder().encodeToString("subjects?abcd".getBytes("utf-8"));

    System.out.println("Using Basic Alphabet: " + basicEncoded);

     

    String urlEncoded = Base64.getUrlEncoder().encodeToString("subjects?abcd".getBytes("utf-8"));

    System.out.println("Using URL Alphabet: " + urlEncoded);

    // 输出为:

    Using Basic Alphabet: c3ViamVjdHM/YWJjZA==

    Using URL Alphabet: c3ViamVjdHM_YWJjZA==

    Java 8 MIME Base64

    MIME Base64编码输出被映射到“A-Za-z0-9+/”字符集中,编码输出每一行不超过76个字符,而且每行以“\r\n”符结束:

    StringBuilder sb = new StringBuilder();

    for (int t = 0; t < 10; ++t) {

      sb.append(UUID.randomUUID().toString());

    }

     

    byte[] toEncode = sb.toString().getBytes("utf-8");

    String mimeEncoded = Base64.getMimeEncoder().encodeToString(toEncode);

    System.out.println(mimeEncoded);

    // 输出为:

    NDU5ZTFkNDEtMDVlNy00MDFiLTk3YjgtMWRlMmRkMWEzMzc5YTJkZmEzY2YtM2Y2My00Y2Q4LTk5

    ZmYtMTU1NzY0MWM5Zjk4ODA5ZjVjOGUtOGMxNi00ZmVjLTgyZjctNmVjYTU5MTAxZWUyNjQ1MjJj

    NDMtYzA0MC00MjExLTk0NWMtYmFiZGRlNDk5OTZhMDMxZGE5ZTYtZWVhYS00OGFmLTlhMjgtMDM1

    ZjAyY2QxNDUyOWZiMjI3NDctNmI3OC00YjgyLThiZGQtM2MyY2E3ZGNjYmIxOTQ1MDVkOGQtMzIz

    Yi00MDg0LWE0ZmItYzkwMGEzNDUxZTIwOTllZTJiYjctMWI3MS00YmQzLTgyYjUtZGRmYmYxNDA4

    Mjg3YTMxZjMxZmMtYTdmYy00YzMyLTkyNzktZTc2ZDc5ZWU4N2M5ZDU1NmQ4NWYtMDkwOC00YjIy

    LWIwYWItMzJiYmZmM2M0OTBm

     

    byte[] decodedBytes = Base64.getMimeDecoder().decode(mimeEncoded);

    String decodedMime = new String(decodedBytes,"utf-8");

    System.out.println(decodedMime);

     

    java 8 Base64 流的封装

     

    Base64类封装了所有的BASE64编码器和解码器,还支持流的封装,这是一个非常优雅的构造,包括编码和效率都很高(无需缓冲Buffer),即编码器和解码器的输入和输出无需缓冲Buffer。下面我们以一个例子来说明编码器是怎样封装FileOutputStream,以及解码器是怎样封装FileInputStream的,两者皆不需要缓冲Buffer:

     

    public void wrapping() throws IOException {

      String src = "This is the content of any resource read from somewhere" +

        " into a stream. This can be text, image, video or any other stream.";

     

      // 编码器封装OutputStream, 文件/tmp/buff-base64.txt的内容是BASE64编码的形式

      try (OutputStream os = Base64.getEncoder().wrap(newFileOutputStream("/tmp/buff-base64.txt"))) {

        os.write(src.getBytes("utf-8"));

      }

     

      // 解码器封装InputStream, 以及以流的方式解码, 无需缓冲

      // is being consumed. There is no need to buffer the content of the file just for decoding it.

      try (InputStream is = Base64.getDecoder().wrap(newFileInputStream("/tmp/buff-base64.txt"))) {

        int len;

        byte[] bytes = new byte[100];

        while ((len = is.read(bytes)) != -1) {

          System.out.print(new String(bytes, 0, len, "utf-8"));

        }

      }

    }

     

    参考:

    https://blog.csdn.net/chszs/article/details/17027649

    https://blog.csdn.net/neweastsun/article/details/80542350

    展开全文
  • Base64mime

    2014-07-09 13:57:30
    Base64加密的用途? Base64加密,也就是让

    Base64加密的用途?

    Base64加密,说是加密,但是由于其算法非常简单,基本不具备有意义的安全性。

    所以,其存在的主要原因并不是为了传输数据的内容的安全性考虑,事实上,由于url本质上也是一个字符串,所以,如果将文件的路径以明文的方式附加到url上的时刻

    可能会出现问题,例如 / 字符,是具有特殊意义的字符。如果附加的文件的名称中也存在/的时刻,就会造成其他附加影响。


    并且,很多时刻,我们对服务端的访问,请求也会被存入数据库或者其他结构中,此时的某些字符也是需要再转义的。


    并且,一段二进制数据要想通过网络传播,也需要统一的编解码标准。


    所以,通常将二进制数据编码成base64放入到url和表单中,以get或者post方式发送给服务端。

    展开全文
  • PHP获取base64文件mime类型

    千次阅读 2019-09-04 15:02:43
    今天接到一个需求,前端以base64形式上传图片,php在接受到base64内容需要判断文件的类型。...官方提供了文件流的操作,则可以将base64转成文件,再获取文件的mime.示例如下: $file = public_path('1.jpeg'...
    • 今天接到一个需求,前端以base64形式上传图片,php在接受到base64内容需要判断文件的类型。
    • 对于文件PHP提供了一个函数来获取文件的mime类型mime_content_type,但是现在接受到的是base64类型,官方没有提供方法。官方提供了文件流的操作,则可以将base64转成文件,再获取文件的mime.示例如下:
        $file = public_path('1.jpeg');
        $aa = base64_encode(file_get_contents($file));
    
        $bb = base64_decode($aa);
    //    $fc = iconv('windows-1250', 'utf-8', $aa);
        $handle=fopen("php://temp", "rw");
        fwrite($handle, $bb);
        fseek($handle, 0);
        echo mime_content_type($handle);
    

    php://stdin, php://stdout 和 php://stderr

    php://stdin 是只读的, php://stdout 和 php://stderr 是只写的。

    php://output

    php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。

    php://memory 和 php://temp

    php://memory 和 php://temp 是一个类似文件 包装器的数据流,允许读写临时数据。 两者的唯一区别是 php://memory 总是把数据储存在内存中, 而 php://temp 会在内存量达到预定义的限制后(默认是 2MB)存入临时文件中。 临时文件位置的决定和 sys_get_temp_dir() 的方式一致。
    php://temp 的内存限制可通过添加 /maxmemory:NN 来控制,NN 是以字节为单位、保留在内存的最大数据量,超过则使用临时文件。

    展开全文
  • ### base64_encode()#### 说明`string base64_encode ( string $data )`使用 base64 对 data 进行编码,数据要比原始数据多占用 33% 左右的空间。设计此种编码是为了使二进制数据,例如电子邮件的主体可以通过非纯 8...

    ### base64_encode()

    #### 说明

    `string base64_encode ( string $data )`

    使用 base64 对 data 进行编码,数据要比原始数据多占用 33% 左右的空间。

    设计此种编码是为了使二进制数据,例如电子邮件的主体可以通过非纯 8-bit 的传输层传输。

    #### 示例

    Example #1

    ~~~

    $str = 'This is an encoded string';

    echo base64_encode($str);

    ?>

    ~~~

    以上例程会输出:

    VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

    * * * * *

    Example #2

    A function I'm using to return local images as base64 encrypted code, i.e. embedding the image source into the html request.

    This will greatly reduce your page load time as the browser will only need to send one server request for the entire page, rather than multiple requests for the HTML and the images. Requests need to be uploaded and 99% of the world are limited on their upload speed to the server.

    ~~~

    function base64_encode_image ($filename=string,$filetype=string) {

    if ($filename) {

    $imgbinary = fread(fopen($filename, "r"), filesize($filename));

    return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary);

    }

    }

    ?>

    ~~~

    used as so

    ~~~

    .logo {

    background: url("<?php echo base64_encode_image ('img/logo.png','png'); ?>") no-repeat right 5px;

    }

    ~~~

    or

    `logo.png','png');%20?>`

    展开全文
  • MIMEBase64编解码

    2008-06-02 23:14:00
    <!--google_ad_client = "pub-0241434510974184";/* auto-http.cn 右边 ,468x60 */google_ad_slot = "0902256228";google_ad_width = 468;google_ad_height = 60;// -->Base64是MIME邮件中常用的编码方式之一。它
  • 用来处理MIME/BASE64编码。 #!/usr/bin/perl -w use strict; use MIME::Base64; foreach() { print decode_base64($_); } exit 0 __DATA__ xOO6w6Osu7bTrcC0tb1jaGluYXVuaXguY29tIFtwZXJsXbDmIQo= ...
  • MIMEBase64编解码

    2005-07-08 14:04:00
    Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{A-Z, a-z, 0-9, +, /}这64个可打印字符的串,故称为“Base64”。 Base64编码的方法是,将输入数据流每次取6 bit,用此6 bit...
  • MIME-Base64-3.01.tar.gz

    2012-04-29 15:10:34
    MIME-Base64-3.01.tar.gz
  • MIME Quoted Printable & Base64 编码解码程序
  • 实时解码txt(cujoconteúdoéum base64):salva em imagem(jpg ou png)ou pdf,符合mimetype 编码 内含物:dog.jpeg 赛达语:dog.txt(转换为base64) 解码 Entrada:dog.txt Saída:dog.jpeg,图像/ jpeg的...
  • Mimebase64编码

    2017-05-17 17:04:00
    MIME的全称是"Multipurpose Internet Mail Extensions",中译为"多用途互联网邮件扩展",指的是一系列的电子邮件技术规范,主要包括RFC 2045、RFC 2046、RFC 2047、RFC 4288、RFC 4289和RFC 2077。 顾名思义,MIME...
  • 电子邮件MIME协议中的Base64编解码 整份实验报告 有截图和代码
  • [quote]root@t225 libexec]# perl -MMIME::Base64 -e 'print encode_base64(&quot;123&quot;)' MTIz [root@t225 libexec]# perl -MMIME::Base64 -e 'print decode_base64(&quot;MTIz&quot;)' 123...
  • BASE64编码 标准BASE64编码 将任意字节流编码为字符串,每3字节转换为4个字符,用于编码的字符集合为如下64个字符: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ URL模式BASE64编码 ...
  • Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码是从二进制到字符的过程,可用于...
  • 文章目录MIME概述base64编码基本原理具体步骤例题quoted-printable编码基本步骤例题ASCLL字符代码表 MIME概述 电子邮件协议SMTP通过连接建立、邮件传送、连接释放三个阶段实现发送方和接收方之间的通信。 不过SMTP有...
  • Base64编码/解码,Quoted-Printable编码/解码,计算MD5值。 支持输入输出到文件,纯绿色软件,仅有29K。
  • <div><p>MIME Base64 requires encoded lines be broken after 76 characters and the library code documentation mentions the feature, but I don't see it in the actual code or the tests or the output ...
  • 关于MIMEBase64

    千次阅读 2008-07-17 21:14:00
    MIME: Multipurpose Internet Email Extension 多功能Internet 邮件扩充服务...其显著的特点是所有的内容用US-ASCII来显示,一个完整的MIME消息如下:MIME-version: 1.0Content-type: multipart/mixed; boundary="fron
  • C# Base64编码解码

    2016-05-13 09:54:04
    Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{‘A‘-‘Z‘, ‘a‘-‘z‘, ‘0‘-‘9‘, ‘+‘, ‘/‘}这64个可打印字符的串,故称为“Base64”。 Base64编码的方法...
  • C#之Base64编码解码

    2018-05-30 17:58:20
    base64工作原理:Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{‘A‘-‘Z‘, ‘a‘-‘z‘, ‘0‘-‘9‘, ‘+‘, ‘/‘}这64个可打印字符的串,故称为“Base64”。Base64...
  • MIME BASE64编码与解码 (java实现)

    千次阅读 2013-07-11 11:26:12
    说明: 涉及的jar包: commons-codec-1.2.jar ...import org.apache.commons.codec.binary.Base64; public class Base64Test {  public static void main(String[] args) {  String str = "1tC5+g==";
  • 1.使用 mime_content_type 方法$mime_type = mime_content_type('1.jpg');echo $mime_type; // image/jpeg?>但此方法在php5.3 以上就被废弃了,官方建议使用fileinfo方法代替。2.使用 Fileinfo 方法(官方推荐)...
  • <p>if I should to store the file in base64 string with mime type, then how should I store it and how I will show those files like if I store the video as base64 string then how will I show it in the ...
  • base64lib:Base64库-源码

    2021-05-01 01:49:50
    base64lib Base64编码/解码库。 Base64是一组类似的二进制到文本编码方案,它们通过将ASCII格式的二进制数据转换为基数64表示形式来表示二进制数据。 术语Base64源自特定的MIME内容传输编码。
  • 网页上的base64码太长?科普base64到底是啥

    千次阅读 热门讨论 2019-06-13 20:46:00
    书接上回,上次是通过返回base64码给前端页面,实现了我们访问项目外图片的目的。只是代码实在是太长了,不好看啊,得想办法优化下。顺带了解下base64到底是啥,用着好不好,会不会影响速度呢? php上传图片到非...
  • MIME的编码介绍(base64)及使用的意义

    千次阅读 2018-07-26 10:37:15
    MIME的编码介绍(base64)及使用的意义 一、MIME: Multipurpose Internet Mail Extensions  英国帝国大学计算机在线字典FOLDOC对MIME的解释为:“多部分(multi-part)、多媒体电子邮件和WWW超文本的一种编码标准,用于...
  • base64_encode 将字符串以 BASE64 编码。 语法: string base64_encode(string data); 返回值: 字符串 ...本 函数将字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利
  • MIME之quoted-printable编码与base64编码(例题+图解)

    千次阅读 多人点赞 2019-08-03 19:58:38
    Q:现在给出一串二进制的文件:01001001 00110001 01111001,如果对该二进制文件进行base64编码,则最后所传送的ASCII码是? A: 扩展:24位二进制代码采用base64编码后变成32位,开销为(32-24)/24,即约等于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,430
精华内容 19,372
关键字:

base64是mime