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编码。