Ankara
0 (312) 276 75 93
info@billgatesweb.com

Java Lisansları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Web Danışmanlık Hizmeti, Seo Hizmeti Al, Mobile Uygulama Yaptır, Back Link Satın Al, Blog Yazdırmak İstiyorum, Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma, Akademik Danışmanlık, Tercüme Danışmanlık

Java Lisansları – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Java Dahili Çerçeve Sınıfı – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Java Lisansları

Lisans parametrelerini değişikliklerden korumak için bir dijital imza üretmemiz gerekiyor. Tüm JCE algoritmaları bayt dizileriyle çalışır, bu nedenle tüm lisans özelliklerinin birleşik bir temsilini döndüren bir getLicenseString() yöntemi ekleyeceğiz. Bu yöntemin kaynak kodu gösterilmektedir.

Şimdilik LicenseManager sınıfından çıkıp LicenseGenerator üzerinde çalışmaya başlayabiliriz. LicenseGenerator, LicenseManager’ı genişletmeli ve dijital imza oluşturmak için yöntemler sağlamalıdır. Seri numarası olarak base64 kodlu dijital imza kullanacağız. Bir imza oluşturmak için, asimetrik algoritma ile kullanmak üzere bir çift anahtara da ihtiyacımız var.

Anahtarlar, JDK’nın keytool yardımcı programı kullanılarak veya programlı olarak Java güvenlik API’leri kullanılarak oluşturulabilir. Keytool ile, anahtarlar yalnızca birkaç komutla oluşturulabilir ve dışa aktarılabilir, ancak akademik ilgi için programatik yaklaşımı benimseyeceğiz.

İlk olarak, kullanılacak algoritmaya ve anahtar uzunluğuna karar vermemiz gerekiyor. Asimetrik şifreleme için standart seçenekler, DSA ve RSA algoritmalarıdır. Her ikisi de doğru anahtar boyutuyla yeterli koruma sağlar, ancak JRE ile birlikte gönderilen Sun JCE tarafından yerel olarak desteklendiği için DSA kullanacağız.

Anahtar boyutu, şifrelemenin karmaşıklığını doğrudan etkiler: Anahtar ne kadar uzunsa kırılması o kadar zor olur. Her bit, çatlama süresini ikiye katlar.

16 bitlik anahtarlar modern bir CPU tarafından birkaç dakika içinde kırılabilirken, 1024 bitlik anahtarların kırılması imkansız kabul edilir çünkü dünyadaki tüm silikon gücü kullanılsa bile bir anahtarın kırılması için gereken süre milyonlarca yıl sürer. (ya da öyle diyorlar).

Gerçek zamanlı şifre çözme yapmadığımız için 1024 bitlik anahtar boyutunu kullanacağız. Liste 19.15’teki kod, bir çift anahtar üreten bir LicenseGenerator yöntemini gösterir.

Uygulama ilk önce DSA anahtar çifti üretecinin bir örneğini alır. Jeneratörün, anahtar boyutu (1024 bit) ve bir rasgele sayı sağlayıcısı ile başlatılması gerekir.

Jeneratörü başlattıktan sonra, anahtarlar,createKeyPair() çağrısıyla oluşturulur. Çift oluşturulduktan sonra, kalan görev genel ve özel anahtarları diske kaydetmektir.

Liste, ortak anahtarın Conf dizinindeki key_public.ser dosyasına nasıl kaydedildiğini gösterir. Yöntemin görünmeyen diğer kısmı da aynı şekilde private anahtarı key_private.ser dosyasına kaydeder.

Açıkçası, anahtarları yalnızca bir kez oluşturmak istiyoruz. LicenseGenerator’a, komut satırı parametrelerine bağlı olarak,createKeys() veyacreateSerialNumber()’ı çağıran bir main() yöntemi verilir.

Anahtar oluşturma uygulamasını zaten gördük, bu yüzden seri numarasını oluşturmaya bakalım. Daha önce bahsedildiği gibi seri numarası, birleştirilmiş lisans özellikleri için base64 kodlu bir dijital imza olarak üretilir. Gösterilen createSerialNumber() yöntemi tam da bunu yapar.

Seri numarası dizesinin baytları, çıktısı daha sonra BASE64Encoder sınıfı kullanılarak bir dizeye dönüştürülen getSignature() yöntemine iletilir. Bu bizi, gösterilen DSA algoritması ile dijital imzalamanın uygulanmasına getiriyor.

Başka hiç kimsenin lisans üretememesini sağlamak için lisans bilgilerini özel anahtarı kullanarak imzalıyoruz. Özel anahtar, bir dosyadan bir bayt dizisine (encodedPrivateKey) okunur. Daha sonra java.security.spec paketindeki PKCS8EncodedKeySpec sınıfını kullanarak ikili temsili dahili bir ASN.1 temsiline dönüştürürüz.

Anahtar temsili daha sonra DSA anahtar fabrikası kullanılarak bir PrivateKey örneğine dönüştürülür. Eldeki anahtar ve seri numarası baytları ile, DSA algoritması (SHA1withDSA) ile güvenli özetin bir örneğini elde ederiz, parametrelerini sağlar ve sign() yöntemini kullanarak dijital imzayı oluştururuz. distrib/conf dizininde chat.license yapılandırma dosyası için lisans oluşturucu komut dosyası licenseGenerator.bat çalıştırıldığında çıktı üretilir.


Java indir
java 32-bit indir gezginler
Java 32 bit
Java 32-bit download
Java download
java 64-bit download
Java 64 bit
Java son sürüm


Lisans Dosyasını Doğrulama

Seri numarasını okumak ve lisans parametrelerinin kurcalanmadığını doğrulamak için Sohbet uygulamasını geliştirmemiz gerekiyor. Chat için kullandığımız seri numarası aslında parametrelerin dijital bir imzası olduğundan, bu imzayı doğrulamak için oluşturulan anahtar çiftinden ortak anahtarı kullanan bir yöntemi kodlamamız gerekiyor.

Daha önce kodladığımız LicenseManager sınıfına correctSerialNumber() adında bir method ekleyelim. Özel anahtar kullanılarak oluşturulan dijital imzayı doğrulamak için yöntemin genel anahtarı kullanması gerekir. Lisans özellikleri ve seri numarası, LicenseManager yapıcısındaki lisans dosyasından okundu ve üye değişkenlerinde saklandı. correctSerialNumber() için kaynak kodu gösterilir.

Yöntem önce ortak anahtar dosyasının içeriğini okur ve anahtarın ikili temsilini PublicKey arabiriminin bir örneğine dönüştürmek için DSA anahtar fabrikasıyla birlikte X509EncodedKeySpec sınıfını kullanır. Daha sonra getLicenseString() tarafından döndürülen lisans parametrelerinin birleştirilmiş gösterimi bir bayt dizisine dönüştürülür.

Seri numarası, lisans dosyasından seri özelliğinin değeri olarak okunur ve eğer eksik değilse, BASE64Decoder sınıfı kullanılarak sayının kodu base64 kodlamasından çözülür. SHA1withDSA imzalama algoritmasının bir örneği elde edilir ve genel anahtar ve lisans verileriyle sağlanır.

Son olarak, seri numarası verilerinin lisans verileri için doğru bir dijital imza olup olmadığını test etmek için imza algoritmasının doğrula() yöntemine yapılan bir çağrı kullanılır. Doğrulama başarısız olursa, InternalError kullanılarak bir istisna raporlanır.

Lisans doğrulamasını Chat ile entegre etmek için, ProtectedChat’in main() yöntemine correctSerialNumber() çağrısını eklememiz gerekir. main() içinde zaten bir LicenseManager örneğine sahip olduğumuz için, sadece gösterilen kod bloğunu ekliyoruz.

LicenseManager’ın correctSerialNumber() yöntemi bir istisna atmazsa, ana bilgisayar adı ve lisans sona erme tarihi doğrulaması gerçekleştirilir. Ana bilgisayar adı doğrulaması, lisans dosyasından okunan ana bilgisayarın adı ile Chat çalıştıran ana bilgisayarın adı arasındaki basit bir dize karşılaştırmasıdır.

Son kullanma tarihi doğrulaması, geçerli sistem tarihi ile okuma lisansı sona erme tarihi arasındaki eşit derecede basit bir karşılaştırmadır. Yalnızca her iki doğrulama da başarılı olursa Chat’in ticari özellikleri etkinleştirilir. LicenseManager ve ProtectedChat’teki kod saldırıya uğramadığı sürece oldukça güvenli bir lisanslama mekanizmamız var.

Lisanslama kontrollerini eklemek için ilginç bir yaklaşım, “Bytecode’u Anlamak ve İnce Ayarlamak” bölümünde açıklanan bayt kodu araçlarını kullanmaktır. Uygulama sınıfları boyunca LicenseManager yöntemlerini manuel olarak çağırmak yerine, uygulamanın temel yöntemlerini lisans doğrulama koduyla süsleyen bir işlemci sonrası yardımcı program geliştirilebilir.

Yardımcı program, kaynak kodu derlendikten sonra ancak bir dağıtım JAR’ına yerleştirilmeden önce çalışır. Girilen bayt kodu, lisans geçersizse veya özelliğe izin verilmediyse bir istisna atar veya bir hata döndürür. Bu, uygulama mantığı ile lisanslama kodu arasında temiz bir ayrım sağlar.


Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır. 

1) Backlink Paketi  50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)


 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın