Java 字符串到密钥的转换/反之亦然
我正在生成一个密钥,如下所示:Java 字符串到密钥的转换/反之亦然,java,android,Java,Android,我正在生成一个密钥,如下所示: key=KeyGenerator.getInstance(ALGO_SECRET_key_GENERATOR).generateKey() 我想把这个密钥发送到另一个活动。如果我使用intent,我认为这需要从secretkey转换成字符串。有谁能告诉我有关密钥转换的信息吗?反之亦然。只需按照以下步骤操作即可 从键到字符串 `SecretKey secretKey = KeyGenerator.getInstance("ALGO_SECRET_KEY_GENERA
key=KeyGenerator.getInstance(ALGO_SECRET_key_GENERATOR).generateKey()代码>
我想把这个密钥发送到另一个活动。如果我使用intent,我认为这需要从secretkey转换成字符串。有谁能告诉我有关密钥转换的信息吗?反之亦然。只需按照以下步骤操作即可
从键到字符串
`SecretKey secretKey = KeyGenerator.getInstance("ALGO_SECRET_KEY_GENERATOR").generateKey();
// Crate base64 string
String encodedKey = Base64.getEncoder().encodeToString(secretKey.getEncoded());`
从字符串到键
`// decode base64 string
byte[] decodedKey = Base64.getDecoder().decode(encodedKey);
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "ALGO_SECRET_KEY_GENERATOR"); `
可从api第8版获得
`SecretKey secretKey = null;
try {
secretKey = KeyGenerator.getInstance("AES").generateKey();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte encoded[] = secretKey.getEncoded();
String str = android.util.Base64.encodeToString(encoded , 0);
byte decoded[] = android.util.Base64.decode(str , 0);
SecretKey originalKey = new SecretKeySpec(decoded, 0, decoded.length, "AES");'
只需遵循以下步骤
从键到字符串
`SecretKey secretKey = KeyGenerator.getInstance("ALGO_SECRET_KEY_GENERATOR").generateKey();
// Crate base64 string
String encodedKey = Base64.getEncoder().encodeToString(secretKey.getEncoded());`
从字符串到键
`// decode base64 string
byte[] decodedKey = Base64.getDecoder().decode(encodedKey);
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "ALGO_SECRET_KEY_GENERATOR"); `
可从api第8版获得
`SecretKey secretKey = null;
try {
secretKey = KeyGenerator.getInstance("AES").generateKey();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte encoded[] = secretKey.getEncoded();
String str = android.util.Base64.encodeToString(encoded , 0);
byte decoded[] = android.util.Base64.decode(str , 0);
SecretKey originalKey = new SecretKeySpec(decoded, 0, decoded.length, "AES");'
你试过什么?你能把你试过的代码放在这里吗?Base64编码。你试过什么?你能把你试过的代码放在这里吗?Base64编码。