Il semble tout simplement que vous confondiez des concepts indépendants et que vous soyez tout nouveau dans Java. Base64 est un type de codage qui convertit les tableaux d'octets "illisibles par l'homme" en chaînes "codées" "lues" et inversement (décodage). Il est généralement utilisé pour transférer ou stocker des données binaires en tant que caractères là où cela est strictement nécessaire (en raison du protocole ou du type de stockage).
La chose SecureRandom
n'est pas un codeur ou un décodeur. Il renvoie une valeur qui ne doit en aucun cas être associée à un certain cipher ou encoder. Voici quelques extraits des liens avant donnés:
ran·dom
adj.
1. Having no specific pattern, purpose, or objective
Cipher
In cryptography , a cipher (or cypher) is an algorithm for performing encryption or decryption — a series of well-defined steps that can be followed as a procedure.
Encoding
Encoding is the process of transforming information from one format into another. The opposite operation is called decoding .
Je vous recommande vivement aurait d'aligner ces concepts pour vous-même (cliquez sur les liens pour en savoir plus sur eux) et ne pas les jeter dans un grand et même trou. Voici au moins un SSCCE qui montre comment vous pouvez correctement encoder/décoder un tableau d'octets (aléatoire) en utilisant base64 (et comment afficher des tableaux comme chaîne (un format lisible par l'homme)):
package com.stackoverflow.q2535542;
import java.security.SecureRandom;
import java.util.Arrays;
import org.apache.commons.codec.binary.Base64;
public class Test {
public static void main(String[] args) throws Exception {
// Generate random bytes and show them.
byte[] bytes = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(bytes);
System.out.println(Arrays.toString(bytes));
// Base64-encode bytes and show them.
String base64String = Base64.encodeBase64String(bytes);
System.out.println(base64String);
// Base64-decode string and show bytes.
byte[] decoded = Base64.decodeBase64(base64String);
System.out.println(Arrays.toString(decoded));
}
}
(en utilisant Commons Codec Base64 par le manière)
Voici un exemple de la sortie:
[14, 52, -34, -74, -6, 72, -127, 62, -37, 45, 55, -38, -72, -3, 123, 23]
DjTetvpIgT7bLTfauP17Fw==
[14, 52, -34, -74, -6, 72, -127, 62, -37, 45, 55, -38, -72, -3, 123, 23]
Pourquoi êtes-vous base64 codage décodage de la valeur si vous nonce venez de créer vous-même comme un tableau d'octets au hasard? – Thilo