我可以从base 64编码密钥文件中删除符号新行吗?
我有一个基地64编码密钥文件。如果我用文本编辑器打开它,我看到4条线路是这样的: 然后我将文本复制并粘贴到Android Studio中,我看到的符号“\ n”时产生如下图所示:
我可以从base 64编码密钥文件中删除符号新行吗?
这耻骨键不起作用。所以我尝试过:
删除所有“\ n”符号。仍然不起作用。
用空格“”替换“\ n”符号。再次不起作用。
你能告诉我我错在哪里吗?
与其将文件内容粘贴到字符串中,为什么不将文件本身复制到assets
文件夹中。例如:
public String readPublicKeyFromFile() {
String publicKeyString; = "";
try {
InputStream is = getAssets().open("public_key.txt");
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
// Convert the buffer into a string.
return new String(buffer);
} catch (IOException e) {
throw new RuntimeException(e);
}
return null;
}
为什么复杂这样一个简单的事情? – SilentKiller
我同意你的意见。不过,我认为他说他试图删除'\ n'字符。另外,我认为将密钥放入单独的文件以防万一它们改变是更好的封装。只是个人喜好。 – Alex
亚我也同意你@亚历克斯。但是如果我们的数据是安全的或者这些数据不需要披露的话。并且它已经是一个64位的字符串(加密字符串),所以不会有任何伤害(根据我的说法)。 – SilentKiller
它的android studio console字符限制它显示多行中的长字符串。
- 最好的方法是在任何文本编辑器(记事本)中复制该字符串,并将其设置为单行字符串,然后将其粘贴到工作室。
- 另一种方法是从字符串中删除'\ n'字符,它将是单行字符串。
例如
private static final String = "abcdefgh" +
"ijklmnop" +
"qrstuvwxyz";
只是从你的字符串中删除'\ n'字符。
如果您创建“publickey.txt”(base64)文件,只需使用“Base64.NO_WRAP”标志来创建文件。该标志不允许“\ n”字符。
-
默认情况下,它将采用“Base64.DEFAULT”标志,因此“\ n”后面的每64个字符将自动添加。
// for encoding the String with out \n String base64Str=Base64.encode(your_string,Base64.NO_WRAP); // for decoding byte[] resByte=Base64.decode(base64Str,Base64.NO_WRAP); // convert into String String resStr=new String(resByte,"UTF-8");
如果它是一个固定的静态字符串,那么你为什么要加入“\ n”只是简单地删除/从字符串中删除。 – SilentKiller
我想他说AS自动生成了这个。 – Alex
你能告诉我们你的密钥文件的hexdump吗? – user1506104