II BOB BOUNCY CASTLE KRIPTOGRAFIK KUTUBXONASIDAN FOYDALANIB MA’LUMOTLARNI SHIFLASH. BOUNCY CASTLE dan xavfsizlik ta'minotchisi sifatida foydalanish
Bouncy Castle-dan xavfsizlik ta'minotchisi sifatida foydalanish uchun sizning class yo'lingizda Jar bo'lishi kerak. Keyin, ushbu yozuvdan keyin java.security faylini yangilashingiz yoki provayderni ish vaqtida ro'yxatdan o'tkazish uchun quyidagi kodni qo'shishingiz mumkin.
/**
the
${java_home}/lib/security/java.security file, that would otherwise
*
security.provider. n =org.bouncycastle.jce.provi der.BouncyCastleProvider .
*/ Security.insertProviderAt( new
BouncyCastleProvider(), 1 );
Kalit
Ma'lumotlarni tinch holatda shifrlash uchun biz nosimmetrik shifrlashdan foydalanamiz.
Agar siz nosimmetrik shifrlashni yaxshi bilmasangiz, bu aslida shifrlash uchun ham, parolni hal qilish uchun ham bitta kalitdan foydalanishni anglatadi. Shifrlashning boshqa turi assimetrik shifrlash bo'lib, u ikkita kalitda ishlaydi, biri ochiq va ikkinchisi shaxsiy.
Eng oddiy yondashuv - himoya qilmoqchi bo'lgan barcha ma'lumotlar uchun umumiy kalitdan foydalanish. Biroq, salbiy tomoni shundaki, agar hujumchi kalitga kirish huquqiga ega bo'lsa, hujumchi faqat bitta kalit bilan barcha ma'lumotlarni parolini hal qilishi mumkin.
private static final SecureRandom SECURE_RANDOM = new SecureRandom( );
public static byte[] generateKey( int keyLength ) throws IOException, NoSuchProviderException,
NoSuchAlgorithmException
{
CipherKeyGenerator cipherKeyGenerator = new CipherKeyGenerator();
cipherKeyGenerator.init( new KeyGenerationParameters( SECURE_RANDOM, keyLength ) );
return cipherKeyGenerator.generateKey();
}
Agar sizning ma'lumotlaringiz alohida foydalanuvchilarga tegishli bo'lsa, yanada xavfsiz yondashuv - foydalanuvchi tomonidan berilgan parol / parol (parolga asoslangan shifrlash (PBE)) asosida har bir foydalanuvchi uchun alohida kalitlarni olishdir. Shunday qilib, yomoni, bitta foydalanuvchi uchun kalitni biladigan
tajovuzkor faqat ushbu foydalanuvchi uchun ma'lumotlarni parolini hal qilishi mumkin.
|