2015-04-08 16 views
0

мне нужно: шифрование на основе пароля, используя SHA512 переваривания и 256 разрядного AES шифрование с CBC и Ьсом флагами набор.Jasypt с SHA512 шифрования Bouncy Castle ОКА

Кажется, что алгоритм должен быть, как это: PBEWithSHA512AndAES256-CBC-BC

, но в моем локальном окр я получаю сообщение об ошибке: org.jasypt.exceptions.EncryptionInitializationException: java.security.NoSuchAlgorithmException: нет такого алгоритма : PBEWithSHA512AndAES256-CBC-BC для поставщика BC

мой тестовый код:

import java.security.Security; 

import org.bouncycastle.jce.provider.BouncyCastleProvider; 
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; 

public class App { 

static { 
    Security.addProvider(new BouncyCastleProvider()); 
} 

public static void main(String[] args) { 
    StandardPBEStringEncryptor mySecondEncryptor = new StandardPBEStringEncryptor(); 
    mySecondEncryptor.setProviderName("BC"); 
    // mySecondEncryptor.setAlgorithm("PBEWITHSHA256AND128BITAES-CBC-BC"); 
    mySecondEncryptor.setAlgorithm("PBEWithSHA512AndAES256-CBC-BC"); 
    mySecondEncryptor.setPassword("pass"); 

    String myText = "Mindaugas"; 
    String mySecondEncryptedText = mySecondEncryptor.encrypt(myText); 

    System.out.println(mySecondEncryptedText); 
    System.out.println(mySecondEncryptor.decrypt(mySecondEncryptedText)); 
} 
} 

PBEWITHSHA256AND128B ITAES-CBC-BC - этот алгоритм работает хорошо, но мне нужно SHA512 и 256 бит AES ...

я установил расширения формы: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

, но все еще получаю эту ошибку: нет такой алгоритм

+0

Может быть, кто-то может предложить лучший способ, как достичь своей цели (SHA512 и 256 бит AES с CBC флагами бв)? –

+0

Вы уверены, что вы установили расширение в правильную JRE? Если вы установили JDK, у вас установлено два JRE, и я рекомендую вам установить расширение на оба из них. – Robert

+0

yes, установленный в Java \ jdk1.7.0_75 \ jre \ lib \ security и \ Java \ jre7 \ lib \ security в случае ... –

ответ

1

Поскольку список алгоритмов на bouncycastle website не обновлен, посмотрите на код в конструкторе в файле Java BouncyCastleProvider.java, вы можете найти исчерпывающий список алгоритмов, поддерживаемых bcprov-jdk16. Небольшой список (типа алгоритмов/функций, которые вы искали) поддержали это -

PBEWITHSHAAND128BITAES-CBC-BC 
PBEWITHSHAAND192BITAES-CBC-BC 
PBEWITHSHAAND256BITAES-CBC-BC 
PBEWITHSHA256AND128BITAES-CBC-BC 
PBEWITHSHA256AND192BITAES-CBC-BC 
PBEWITHSHA256AND256BITAES-CBC-BC 
PBEWITHSHA1AND128BITAES-CBC-BC 
PBEWITHSHA1AND192BITAES-CBC-BC 
PBEWITHSHA1AND256BITAES-CBC-BC 
PBEWITHSHA-1AND128BITAES-CBC-BC 
PBEWITHSHA-1AND192BITAES-CBC-BC 
PBEWITHSHA-1AND256BITAES-CBC-BC 
PBEWITHSHA-256AND128BITAES-CBC-BC 
PBEWITHSHA-256AND192BITAES-CBC-BC 
PBEWITHSHA-256AND256BITAES-CBC-BC