标签: base64

在JavaScript中从base64字符串创建Blob

我在字符串中有base64编码的二进制数据.

const contentType = 'image/png';
const b64Data = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
Run Code Online (Sandbox Code Playgroud)

我想创建一个blob:包含此数据的URL并将其显示给用户.

const blob = new Blob(????, {type: contentType});
const blobUrl = URL.createObjectURL(blob);

window.location = blobUrl;
Run Code Online (Sandbox Code Playgroud)

我还没有弄清楚如何创建Blob.

在某些情况下,我可以通过使用data:URL 来避免这种情况.

const dataUrl = `data:${contentType};base64,${b64Data}`;

window.location = dataUrl;
Run Code Online (Sandbox Code Playgroud)

但是在大多数情况下,data:URL非常大.


如何Blob在JavaScript中将base64字符串解码为对象?

javascript base64

405
推荐指数
13
解决办法
39万
查看次数

用JavaScript获取图像数据?

我有一个带有一些图像的常规HTML页面(只是常规的<img />HTML标签).我想得到他们的内容,优选base64编码,而不需要重新下载图像(即它已经被浏览器加载,所以现在我想要内容).

我很想用Greasemonkey和Firefox实现这一目标.

javascript firefox base64 greasemonkey image

326
推荐指数
6
解决办法
41万
查看次数

如何在Android中调整位图大小?

我从远程数据库中获取了一个Base64字符串的位图,(encodedImage是用Base64表示图像的字符串):

profileImage = (ImageView)findViewById(R.id.profileImage);

byte[] imageAsBytes=null;
try {
    imageAsBytes = Base64.decode(encodedImage.getBytes());
} catch (IOException e) {e.printStackTrace();}

profileImage.setImageBitmap(
    BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
Run Code Online (Sandbox Code Playgroud)

profileImage是我的ImageView

好的,但是我必须在显示我ImageView的布局之前调整此图像的大小.我必须将其调整为120x120.

有人能告诉我调整大小的代码吗?

我找到的示例无法应用于获得位图的base64字符串.

base64 android bitmap

314
推荐指数
8
解决办法
41万
查看次数

Java中的Base64编码

我正在使用Eclipse.我有以下代码行:

wr.write(new sun.misc.BASE64Encoder().encode(buf));
Run Code Online (Sandbox Code Playgroud)

Eclipse将此行标记为错误.我导入了所需的库:

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
Run Code Online (Sandbox Code Playgroud)

但同样,它们都显示为错误.我在这里找到了类似的帖子.

我使用Apache Commons作为建议的解决方案,包括:

import org.apache.commons.*;
Run Code Online (Sandbox Code Playgroud)

并导入从以下网址下载的JAR文件:http://commons.apache.org/codec/

但问题仍然存在.Eclipse仍然显示前面提到的错误; 请指教.

java base64

302
推荐指数
14
解决办法
74万
查看次数

为什么base64编码的字符串最后有一个=符号

我知道base64编码是什么以及如何base64在C#中计算编码,但是我已经多次看到当我将字符串转换为base64时,最后会有一个=.

提出了几个问题:

  1. 难道一个base64字符串总是以结束=
  2. 为什么=最后会附加?

base64 encoding

298
推荐指数
9
解决办法
14万
查看次数

如何将图像转换为base64编码?

你能指导我如何将图像从URL转换为base64编码?

php base64 image

273
推荐指数
6
解决办法
37万
查看次数

在Node.js中保护随机令牌

这个问题中, Erik需要在Node.js中生成一个安全的随机令牌.有crypto.randomBytes生成随机缓冲区的方法.但是,节点中的base64编码不是url-safe,它包含/+不是-_.因此,生成此类令牌的最简单方法是我发现的

require('crypto').randomBytes(48, function(ex, buf) {
    token = buf.toString('base64').replace(/\//g,'_').replace(/\+/g,'-');
});
Run Code Online (Sandbox Code Playgroud)

有更优雅的方式吗?

javascript base64 securestring node.js

248
推荐指数
10
解决办法
16万
查看次数

为什么我们使用Base64?

维基百科

当需要编码需要通过设计用于处理文本数据的媒体存储和传输的二进制数据时,通常使用Base64编码方案.这是为了确保数据在运输过程中保持完好无需修改.

但是,数据是否总是以二进制形式存储/传输,因为我们的机器存储二进制文件的内存只取决于你如何解释它?因此,无论您编码位模式010011010110000101101110ManASCII或如TWFu为Base64,你最终将存储相同的位模式.

如果最终编码是零和1,并且每台机器和媒体都可以处理它们,那么如果数据表示为ASCII或Base64,这又如何重要?

什么是"旨在处理文本数据的媒体"?他们可以处理二元=>他们可以处理任何事情.


谢谢大家,我想我现在明白了.

当我们发送数据时,我们无法确定数据的解释格式是否与我们预期的相同.因此,我们发送以双方都理解的某种格式(如Base64)编码的数据.这样,即使发送方和接收方以不同方式解释相同的内容,但由于它们对编码格式达成一致,因此数据不会被错误地解释.

来自Mark Byers的例子

如果我想发送

Hello
world!
Run Code Online (Sandbox Code Playgroud)

一种方法是用ASCII发送它

72 101 108 108 111 10 119 111 114 108 100 33
Run Code Online (Sandbox Code Playgroud)

但是字节10可能无法正确解释为另一端的换行符.因此,我们使用ASCII的子集对此进行编码

83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
Run Code Online (Sandbox Code Playgroud)

以相同数量的信息传输的更多数据为代价,确保接收器能够以预期的方式解码数据,即使接收器恰好对字符集的其余部分有不同的解释.

algorithm binary base64 ascii character-encoding

246
推荐指数
12
解决办法
8万
查看次数

如何解码base64编码的字符串?

我试图"解码"以下Base64字符串:

OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIAQxALBtZAwUeOzcdcUEeW0dMO1kbPElWCV1ISFFKZ0kdWFlLAURPZhEFQVseXVtPOUUICVhMAzcfZ14AVEdIVVgfAUIBWVpOUlAeaUVMXFlKIy9rGUN0VF08Oz1POxFfTCcVFw1LMQNbBQYWAQ ==

这就是我对字符串本身的了解:

  1. 原始字符串首先通过以下代码传递:

    private static string m000493(string p0, string p1)
    {
        StringBuilder builder = new StringBuilder(p0);
        StringBuilder builder2 = new StringBuilder(p1);
        StringBuilder builder3 = new StringBuilder(p0.Length);
        int num = 0;
    Label_0084:
        while (num < builder.Length)
        {
            int num2 = 0;
            while (num2 < p1.Length)
            {
                if ((num == builder.Length) || (num2 == builder2.Length))
                {
                    MessageBox.Show("EH?");
                    goto Label_0084;
                }
                char ch = builder[num];
                char ch2 = builder2[num2];
                ch = (char)(ch ^ ch2);
                builder3.Append(ch);
                num2++;
                num++;
            }
        }
        return m0001cd(builder3.ToString()); …
    Run Code Online (Sandbox Code Playgroud)

c# base64 encoding

246
推荐指数
3
解决办法
30万
查看次数

NodeJS:如何将base64编码的字符串解码回二进制?

我正在使用salt实现密码哈希,所以我生成了salt作为二进制文件,哈希密码,base64编码密码和salt然后将它们存储到数据库中.

现在,当我检查密码时,我应该将盐解码为二进制数据,使用它来散列提供的密码,base64编码结果并检查结果是否与数据库中的结果匹配.

问题是,我找不到将盐解码为二进制数据的方法.我使用Buffer.toString方法对它们进行编码,但似乎没有反向函数.

base64 encoding decoding node.js

240
推荐指数
1
解决办法
23万
查看次数