Android 中Base64编码解码

Android中图片的Base64编码与解码操作详解 Base64编码技术是一种广泛应用于数据传输中的编码技术,它通过将二进制数据转换为ASCII字符串,使得数据能够在不支持二进制数据的媒介(如邮件、URL)中传输。尽管Base64编码被广泛使用,但在应用时仍有一些限制和挑战。 阅读详情

首先要说明的是Base64是编码解码,而不是加密解密,因为加密解密你是需要密钥的,编码是大家都知道怎么解码的,不需要密钥的。

Base64,将任意的字节数组,通过算法,生成只有(英文大小写(52个字母),数字(10个)+/(2个))内容标识的字符串数据;
相当于将任何的内容转换为可见字符串的表示。

Base64, 将原始数据按照3个字节一个分组,按位进行分割为每6位一个字节的形式,进行转换,形成新的4个字节,这4个字节的再通过Base64的编码表进行映射。

6位能够表示的字符数就是64所以称为Base64,其实就是字节总长度增加了3分之一。



编码: Base64.encodeToString("你好".getBytes(), Base64.NO_WRAP);//NO_WRAP不换行


解码:Base64.decode(fakeString.getBytes(), Base64.NO_WRAP);//解码时注意事项,第二个参数的取值,应该和编码时一致;


实例具体的代码:


package tech.androidstudio.encodecryp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        base64Test();
    }

    public void base64Test(){
        /**
         * 最好 使用 encodeToString,不然还要自己转换。
         byte[] encode = Base64.encode("你好".getBytes(), Base64.NO_WRAP);
         String encodeString = new String(encode);
         Log.d("kodulf","你好的Base64 的编码是"+encodeString);
         */

        //编码
        String encodeToString = Base64.encodeToString("你好".getBytes(), Base64.NO_WRAP);//NO_WRAP 不换行
        Log.d("kodulf","你好的Base64 的编码是"+encodeToString);

        //解码
        //模拟解码的数据
        String fakeString = Base64.encodeToString("Kodulf 是一个好人".getBytes(), Base64.NO_WRAP);
        Log.d("kodulf","模拟解码数据得到的编码:"+fakeString);

        // 解码时注意事项,第二个参数的取值,应该和编码时一致;
        byte[] decodeStringbytes = Base64.decode(fakeString.getBytes(), Base64.NO_WRAP);
        String decodeString = new String(decodeStringbytes);
        Log.d("kodulf","模拟解码数据得到的解码:"+decodeString);

    }
}



03-22 02:48:29.254 511-511/? D/kodulf: 你好的Base64 的编码是5L2g5aW9
03-22 02:48:29.254 511-511/? D/kodulf: 模拟解码数据得到的编码:S29kdWxmIOaYr+S4gOS4quWlveS6ug==
03-22 02:48:29.254 511-511/? D/kodulf: 模拟解码数据得到的解码:Kodulf 是一个好人




zemax双透镜公差分析 蒙特卡罗分析: 评估公差的整体影响,模拟过程中产生一系列随机的lens,满足指定的公差,然后再按照标准评估。公差分析,就是在设计了一个理想的系统后,想看看实际生产过程中如果产生公差(误差),系统会坏到什么程度,也就是光学性能受到多大影响。反灵敏度分析:分别对每个公差在性能方面的一个给定的最小允许减少量来计算公差,也就是限制了系统性能的变化,和灵敏度分析方向相反。灵敏度分析对每个公差单独求值,分别计算每个公差操作数的最大、最小、标准值(如上图)所有设计上可能的公差都列出来了。注意要固定透镜的口径。 阅读详情

相关推荐

遥感SCI期刊模板下载教程———IEEE TGRS、GRSL、JSTARS

IEEE下的期刊模板下载,以IEEE TGRS 为例。

海淀小天的blog 2万+

Java 和 Android 的 Base64

java和android的Base64这个类的作用以及使用

简单记录工作和学习 4450

SMILES:化学结构的线性表示方法

SMILES:化学结构的线性表示方法

jasminefeng的博客 1万+

android base64原码

android base64原码

rhj的专栏 792

利用按键精灵实现批量截图与智能命名的高效工作流

本文详细介绍了如何利用按键精灵软件构建高效的批量截图与智能命名自动化工作流。通过基础脚本编写、循环逻辑实现及高级命名策略,解决手动操作耗时易错的问题,帮助用户实现一键自动截图、智能保存与文件重命名,大幅提升软件测试、教程制作及数据报告等场景的工作效率。

weixin_29268267的博客 569

libnice和coturn这两个库有交叉实现的地方,具体有啥区别?

TurnAdmin:是一个TURN的管理工具,此工具能被用来管理用户账号的增删改查。 TurnServer:是TURN和STUN的服务器实现。 Turnutils_uclient: 模拟多个UDP、TCP、TLS或DTLS客户端 Turnutils_peer: 一个简单的无状态UDP-ECHO服务器,用作中继模式中的最终服务器 Turnutils_stunclient: 一个简单的STUN客户端例子 Turnutils_rfc5769check: 检查STUN/TURN协议实现的正确性。 我们..

Langeldep的专栏 1320

Android Studio Base64编、解码

Base64是网络上最常见的用于传输8Bit的编码方式之一,Base64就是一种基于64个可打印字符来表示数据的方法。

sdvsdva的博客 2111

手把手教你用yt-dlp批量下载YouTube视频数据集(附TikTok/Kaggle资源)

本文提供了一份构建视频数据集的实战指南,重点介绍了使用yt-dlp工具批量下载YouTube视频的高级技巧,包括环境配置、批量参数设置与自动化脚本。同时,文章还整合了TikTok、Kaggle及学术开源数据集等多源高质量视频资源,并分享了数据清洗、格式统一与管理的完整流程,帮助研究者和开发者高效获取与处理训练数据。

weixin_29057237的博客 291

Android 进阶——常用的Base64编码算法和MD5 信息摘要算法详解

常用的Base64编码算法和MD5 信息摘要算法详解

最美不过,心中有梦,身旁有你! 4024

InsightFace(RetinaFace + ArcFace)人脸识别实战:从模型部署到Web服务构建

本文详细介绍了如何利用InsightFace框架,结合其集成的RetinaFace人脸检测与ArcFace人脸识别预训练模型,从零开始构建一个高性能的Web人脸识别服务。内容涵盖环境搭建、模型部署、核心代码解析(包括五点仿射对齐关键步骤)、FAISS向量检索集成以及基于FastAPI的Web服务开发,并提供了实战优化与常见问题排查指南,帮助开发者快速实现工业级应用。

weixin_29054245的博客 227

AI 智能体(Agent)应用开发工程师 · 进阶面试 (五)

在有多位 Agent 共同参与决策时(如评审委员会、代码审查小组),它们可能提出截然相反的建议。共识机制就是用来在这种冲突中得出唯一行动方案的规则。常用机制:多数投票:每个 Agent 一票,根据投票结果决定。实现简单,但忽略了专业度差异。加权投票:根据 Agent 的角色重要性或历史表现赋予不同权重,例如首席架构师 Agent 的票权重是普通开发者 Agent 的 2 倍。管理者仲裁:由一个权限更高的 Manager Agent 听取各方理由后做出最终裁决。这类似于层级制组织决策。辩论收敛。

篮球界最会写bug的人;程序猿中打球最菜的人。 394

Android数据传输加密(一):Base64转码算法

Base64并不是一种加密算法,而是一种转码算法。它把字节序列(不仅仅是字符串)按照映射表转码为便于传输的64个可见字符,降低数据出错率。这也是它的名字 的由来,即“基于64个字符”之意。通常我们在将数据加密后,经过Base64转码后再进行传输。

Android Engineer. 1万+

给跨代引用记一本账:Java GC 的分配路径、卡表写屏障与收集器版图快速回顾

本文把 Java GC 的零散名词串成一条推理链路:从 TLAB 指针碰撞分配、逃逸分析,到 Eden、Survivor 与晋升的四条路,重点拆解卡表与写屏障如何为老年代指向新生代的引用记账,及 Minor GC 如何只扫脏卡。基于 JDK 8 实测:分散写使 Young GC 停顿涨 10~15 倍,条件卡标记消除卡表伪共享,计数循环让 System.gc 等待 2.7 秒,Survivor 过小使晋升量增加约 400 倍。文末梳理 JDK 8 到 27 的收集器演进、选型路径与排查顺序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 17万+

关于base64编码解码(Android编码,JS解码,案例为解决安卓端H5页面的emoji表情显示问题)

1、前言: Base64是网络上最常用的用于传输8Bit字节代码的编码方式之一,比如开发中用于传递参数、现代浏览器中的标签直接通过Base64字符串来渲染图片,以及用于邮件中等等。Base64编码在RFC2045中定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。 2、应用举例: 以“迅雷下载”为例:很多下载类网站都提供“迅雷下载”的链接,其地址

x_chengqq 4万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

安卓下的BASE64编码与解码

安卓下的Base64编码与解码

小太阳的博客 3484

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

安卓base64编码与java解码_android Java BASE64编码和解码二:图片的编码和解码

package com.app21;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOException;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.gra...

weixin_39884078的博客 342

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android图片解码,Android图片的Base64编码与解码及解码Base64图片方法

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP...

weixin_36369605的博客 1721

android Java BASE64编码和解码二:图片的编码和解码

1、准备工作  (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础     (2)添加 ImgHelper 工具类   package com.app21; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import

赵彦军 1001

android 判断base64编码格式,Android图片的Base64编码与解码及解码Base64图片方法

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP...

weixin_39839018的博客 753

android中base64编码解码,Andorid自带的Base64编解码表

在Android提供的android.util.Base64类中,提供了base64基本的几种编解码格式,源码如下/*** Default values for encoder/decoder flags.*/public static final int DEFAULT = 0; // 此flag下编码完成的String中会包含换行符\n,+号,末尾以“=”结束/*** Encoder fl...

weixin_33095355的博客 1907

Android图片的Base64编码与解码

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

qq_44318789的博客 3017

android 图片base64编码解码

android 对图片编码解码demo package com.example.appdemos; import java.io.ByteArrayOutputStream; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Comp...

dgyibo2014的博客 192

android自带base64编码解码

import android.util.Base64 String str = "Hello!"; //base64编码 String strBase64 = Base64.encodeToString(str.getBytes(), Base64.DEFAULT); //base64解码 String str2 = new String(Base64.decode(strBas...

剑阁青枫 3万+

java异常base64_Java和Android之间的错误编码/解码Base64

正如我的问题,当我在Java和Android之间编码/解码Base64时,我遇到了一个大问题.这是我的情况:我在Java上使用ECC编写代码来加密/解密,mycode工作得非常好.然后我尝试在Java上加密字符串并在Android上解密这个加密的字符串,它失败了.我认为问题可能是编码/解码Base64.这是我的代码:1 /仅在Java上加密/解密://ENCRYPTtry {Cipher c = ...

weixin_34471172的博客 892

android base64 java,Java和Android之间的Base64错误编码/解码

I have a problem when I encode/decode Base64 between Java and Android.Here is my case:I write code to encrypt/decrypt using ECC on Java, my code work very well.Then I try to encrypt string on Java and...

weixin_39897887的博客 760

Android中Base64编码与解码的实现

我已无力吐槽自己的智力和知识搜索能力,

Shawn1992的学习笔记 1842
上一篇: String的编码和解码
下一篇: Android 中的URLEncoder和URLDecoder
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值