以下は、SHA 暗号化用に作成したコードです。しかし、これをコンパイルすると、例外が発生します
java.security.NoSuchAlgorithmException: SHA SecretKeyFactory が利用できません
これを解決するために誰か助けてください。実際には暗号化技術に精通していません。
コード :
public String encrypt(String password)
{
try
{
KeySpec ks=new PBEKeySpec(password.toCharArray());
SecretKeyFactory skf=SecretKeyFactory.getInstance(algo);
SecretKey key=skf.generateSecret(ks);
MessageDigest md=MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
byte[] digest=md.digest();
byte[] salt=Arrays.copyOf(digest, 16);
AlgorithmParameterSpec aps=new PBEParameterSpec(salt, 20);
Cipher cipher=Cipher.getInstance(algo);
cipher.init(Cipher.ENCRYPT_MODE, key, aps);
}
catch(Exception e)
{
e.printStackTrace();
}
return password;
}
@Override
public String decrypt(String password)
{
try
{
KeySpec ks=new PBEKeySpec(password.toCharArray());
SecretKeyFactory skf=SecretKeyFactory.getInstance(algo);
SecretKey key=skf.generateSecret(ks);
MessageDigest md=MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
byte[] digest=md.digest();
byte[] salt=Arrays.copyOf(digest, 16);
AlgorithmParameterSpec aps=new PBEParameterSpec(salt, 20);
Cipher cipher=Cipher.getInstance(algo);
cipher.init(Cipher.DECRYPT_MODE, key, aps);
}
catch(Exception e)
{
e.printStackTrace();
}
return password;
}