我现在正在研究一个与IMS有关的Android程序.我希望服务器将一个随机数发送回客户端作为字符串并在客户端打印.为了生成nonce,我尝试使用此站点的代码.
http://www.exampledepot.com/egs/java.security/CreateSecureRandom.html
部分代码如下
public static String generateNonce() {
try {
// Create a secure random number generator
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
// Get 1024 random bits
byte[] bytes = new byte[1024/8];
sr.nextBytes(bytes);
// Create two secure number generators with the same seed
int seedByteCount = 10;
byte[] seed = sr.generateSeed(seedByteCount);
sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
SecureRandom sr2 = SecureRandom.getInstance("SHA1PRNG");
sr2.setSeed(seed);
} catch (NoSuchAlgorithmException e) {
}
//return NONCE;
return null;
}
Run Code Online (Sandbox Code Playgroud)
我NONCE = generateNonce();在开始时宣布.但问题是不是获取nonce值,而是在客户端打印为null …
我想知道如何将字节数组转换为键.
我正在进行AES加密/解密.而不是生成一个键,我想使用我生成的字节数组.
byte[] clientCK = Milenage.f3(sharedSecret16, RANDbytes, opc);
Run Code Online (Sandbox Code Playgroud)
假设我有一个名为clientCK的字节数组,如上所述.我想在AES加密中使用它,如下所示.
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, key);
byte[] encValue = c.doFinal(valueToEnc.getBytes());
String encryptedValue = new BASE64Encoder().encode(encValue);
Run Code Online (Sandbox Code Playgroud)
因此,我需要将该字节数组clientCK转换为密钥格式.请帮忙.