2011-01-27 44 views
11

getInstance ve init için yöntem bağımsız değişkenleri değişmediğinden, aynı Cipher nesnesini birden fazla yöntemde kullanabilir miyim? Örneğin, uygulamanın bir çok uygulamasının bir yardımcı program sınıfında decrypt yöntemini kullandığını varsayalım. Tüm şifrelenmiş değerler, aynı anahtar ve algoritma kullanılarak oluşturulur. Yani aynı Cipher nesnesini yeniden kullanabilir miyim?Cipher nesnesi tekrar kullanılabilir mi?

Cipher (KeySpec, SecretKey nesnelerinin oluşturulmasına neden olabilir) çok sayıda oluşturma konusunda endişelenmeye değer mi?

cevap

-5

Şifre nesnesini yeniden kullanabilirsiniz, ancak her işlem için init() öğesini çağırarak her zaman başlatmanız gerekir.

KeySpec'i yeniden oluşturma konusunda endişeleriniz varsa, bunu kaydetmeli ve aynı değeri birden çok init() kullanmalısınız.

+0

Cevabınız için teşekkür ederiz. Sadece onaylamak için, her bir doFinal() için bir init() çağrısı gerektiğini mi kastediyorsunuz? – Firefox

+9

doFinal() için Javadocs açık bir şekilde belirttiği gibi, "Bu işlem bittikten sonra, bu yöntem, daha önce bir çağrıyla başlatıldığında başlatılan duruma göre bu şifre nesnesini sıfırlar. Yani, nesne sıfırlanır ve şifrelenir veya deşifre edilebilir. init çağrısında belirtilen çalışma moduna bağlı olarak) daha fazla veri. " –

+5

GregS doğru. Bu cevap yanlış. Ne yazık ki, stackoverflow sihirbazları şimdi "kilitli" olduğu için hatalı upvote'u geri almama izin vermiyor. Kötü tasarım seçim sihirbazları. – Nemi

İlgili konular