Как преобразовать массив байтов в ключевой формат? - PullRequest
0 голосов
/ 06 мая 2010

Я хотел бы знать, как преобразовать байтовый массив в ключ.

Я делаю шифрование / дешифрование AES. вместо генерации ключа я хотел бы использовать мой сгенерированный байтовый массив.

byte[] clientCK = Milenage.f3(sharedSecret16, RANDbytes, opc);  

допустим, у меня есть байтовый массив с именем 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);

поэтому мне нужно преобразовать этот байтовый массив clientCK в формат ключа. пожалуйста, помогите.

Ответы [ 2 ]

6 голосов
/ 06 мая 2010

Вы можете использовать SecretKeySpec:

public SecretKeySpec(byte[] key, String algorithm)

Создает секретный ключ из заданного байтового массива.

0 голосов
/ 05 апреля 2013

U потребует указания имен файлов политик ниже в необходимых местах, которые дают более высокие размеры ключей для определенных алгоритмов / и устанавливают более высокие алгоритмы для конкретных стран (в соответствии с политикой шифрования экспорта США) Например, каталог JDK на моем ПК. C: \ Program Files \ Java \ jdk1.5.0_17 \ jre \ lib \ security

U также требует установки файла java.security с соответствующим провайдером шифрования, как показано в вашем файле java.security, как показано ниже (в каталоге выше)

Example :     security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider
              security.provider.6=com.sun.crypto.provider.SunJCE
             security.provider.5=cryptix.provider.Cryptix 

Нумерация провайдера безопасности, как видно выше, указывает порядок, в котором соответствующие провайдеры безопасности будут использоваться соответствующей JVM. В приведенном выше примере 3 поставщика безопасности установлены для использования в базовой JVM. Это BouncyCastle, SunJCE и Cryptix.

файлы local_policy.jar и US_export_policy.jar, которые нужно поместить в каталог lib \ security JVM

Вам нужно будет установить файлы политики неограниченной юрисдикции Java Cryptography Extension (JCE), перечисленные выше. Если вы этого не сделаете, размер ключей будет ограничен в соответствии с законами США об экспорте. размер ключа, указанный в приложении, например, размер ключа AES, указанный в приложении как 20 байт вместо 32 байт)

...