我们知道,在 gobase64.StdEncoding
或base64.RawStdEncoding
. 如何正确使用其中之一来解码一个base64字符串?如果调用了不正确的编码方法。例如,如果RawStdEncoding
使用 来解码一个字符串,就会出现StdEncoding
错误。illegal base64 data at input byte xxx
每个文档
const (
StdPadding rune = '=' // Standard padding character
NoPadding rune = -1 // No padding
)
Run Code Online (Sandbox Code Playgroud)
RawStdEncoding 是标准原始、未填充的 Base64 编码,如 RFC 4648 第 3.2 节中定义。这与 StdEncoding 相同,但省略了填充字符。
我们是否应该通过检查 padding 是否结束来区分它们StdPadding
?代码片段
lastByte := s[len(s)-1:]
if lastByte == string(base64.StdPadding) {
base64.StdEncoding.DecodeString(s)
} else {
base64.RawStdEncoding.DecodeString(s)
}
Run Code Online (Sandbox Code Playgroud)
这是一种优雅的方式吗?或者我错过了什么?解码 Base64 字符串的优雅方法是什么?
更新:
也许是一种通过错误检查来完成此操作的原始方法,如下所示
rawByte, err := base64.StdEncoding.DecodeString(s)
if err …
Run Code Online (Sandbox Code Playgroud) 下午好,我目前正在使用 JAVA 和 Quarkus 中的 api,在其中我通过 GET 方法接收 url 中使用 AES 加密的参数,问题是加密带有特殊字符,例如 +/ 现在读取服务将其作为路径的 url
这是我的 AES 加密代码、加密和解密方法,我将其用于加密:
package com.tmve.util;
import lombok.NoArgsConstructor;
import javax.crypto.*;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.security.*;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import java.util.Arrays;
import java.util.Base64;
@NoArgsConstructor
public class EncryptUtil {
private static byte[] initializationVector = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
private static byte[] key;
private static SecretKeySpec secretKey;
public String encrypt(String input, String key)
throws NoSuchPaddingException, NoSuchAlgorithmException,
InvalidAlgorithmParameterException, InvalidKeyException,
BadPaddingException, IllegalBlockSizeException {
byte[] desKeyData = key.getBytes();
Cipher …
Run Code Online (Sandbox Code Playgroud) 实际上我在我的android项目中从JSON获取了图像字符串.字符串图像成功传递给使用HTTPPOST.现在,我面临的问题是在php中的mysql数据库中将图像保存为blob类型.如何转换我得到的字符串图像,以便它可以保存为mysql数据库中的blob类型?如果有人知道的方式,请善意的建议.
谢谢.
我有一个需要发送到服务器的图像.有没有办法在黑莓中将位图(jpg)转换为base64字符串?
在下面的示例中,为什么Convert.FromBase64String()不会抛出异常.当然应该抛出格式异常?
string s = "This is just a test string which we will test if it is base64";
bool isBase64 = false;
try
{
byte[] b = Convert.FromBase64String(s);
isBase64 = true;
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
isBase64 = false;
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的 Chrome 应用程序。有一个base64字符串。在其中,我存储了一个 PDF 文件,我想在新的window
或iframe
.
我尝试使用创建一个 iframe src="data:application/pdf;base64,.."
。
之后,我收到此错误:
\n\n\n\n拒绝从\n \'data:application/pdf;base64,JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3R\xe2\x80\xa6Q4RUU5MzdDRDQyM0RFNEI4MTkzNDU3MzIzMTM2OQo+PgpzdGFydHhyZWYKMj加载插件数据A0NTQKJSVFT0YK\'\n 因为它违反了以下内容安全策略指令:\n "default-src \'self \' chrome 扩展资源:“。请注意,\n \'object-src\' 未显式设置,因此 \'default-src\' 被用作\n 后备。
\n
当从相同的输入字符串获取bas64编码的字符串时,我发现JavaScript,Groovy和Go具有相同的结果,但GNU base64略有不同.这是为什么?
JavaScript(nodejs v0.10.33):
new Buffer('Laurence Tureaud is Mr. T').toString('base64');
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
Run Code Online (Sandbox Code Playgroud)
Groovy(Java 8上的2.3.7):
'Laurence Tureaud is Mr. T'.bytes.encodeBase64().toString()
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
Run Code Online (Sandbox Code Playgroud)
去(1.4):
b64.StdEncoding.EncodeToString([]byte("Laurence Tureaud is Mr. T"))
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==
Run Code Online (Sandbox Code Playgroud)
GNU base64(带有UTF-8术语字符集的GNU coreutils 8.12.197-032bb):
echo 'Laurence Tureaud is Mr. T' | base64
TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVAo=
Run Code Online (Sandbox Code Playgroud) 似乎在最新版本的Android中,已弃用Apache软件包中的EncodingUtils。我们EncodingUtils.getBytes(postData, "base64")
在代码中调用了很多东西,现在需要对其进行升级。有什么方法可以使用更现代的方法来达到目的?
这是我的名字的代码LoginBg
,我必须加密密码.如何从密码的输入字段获取文本并使用base64编码加密?
export default class LoginBg extends React.Component {
constructor(props) {
super(props);
this.state ={
username:"",
password:"",
}
}
_handlePress() {
console.log(this.state.username);
console.log(this.state.password);
}
render(){
return (
<KeyboardAvoidingView behavior="position" style={styles.container}>
<Text style={styles.heading}>- Login Page -</Text>
<TextInput keyboardType='email-address' underlineColorAndroid='transparent' onChangeText={(text) => this.setState({username:text})} placeholder="Email" placeholderTextColor="#eaf4fc" style={styles.input}/>
<TextInput secureTextEntry underlineColorAndroid='transparent' onChangeText={(text) => this.setState({password:text})} placeholder="Password" placeholderTextColor="#eaf4fc" style={styles.input}/>
<Button onPress={() => this._handlePress()}>Login</Button>
<Button>Register</Button>
</KeyboardAvoidingView>
);
}
}
Run Code Online (Sandbox Code Playgroud) 在base64中,如果要编码的字符不是AZ,az,+或/?
如果我想在base64中对URL进行编码,其中包含冒号(:),那么因为它不在base64索引中会发生什么.
base64 ×10
javascript ×3
android ×2
go ×2
java ×2
aes ×1
bitmap ×1
blackberry ×1
c# ×1
encoding ×1
encryption ×1
gnu ×1
groovy ×1
iframe ×1
json ×1
mysql ×1
pdf ×1
php ×1
quarkus ×1
react-native ×1