SORU
30 Temmuz 2009, PERŞEMBE


Nasıl String şifreleme

İhtiyacım olan şey 2 boyutlu barkod (PDF-417) görünecek yani birisi bir şey okunabilir olacak taramak için bir fikir olsun dize şifrelemek için.

Diğer gereksinimleri vardır - o kadar da karmaşık olmamalı, KRİPTOLOJİ infrstructure, anahtar çiftleri vb RSA oluşacaktı. Herkesten gizlice etrafında kurtulmak, ve diğer şirketler bu verileri elde interrested için şifresini çözmek için kolay almak için yeterince basit olmalıdır. Bize diyorlar, şifre çözme için kullanılabilir daha onları standart söyle ya da onları bazı basit anahtarını ver.

Muhtemelen bu şirketlerin bazı özel platform ya da Teknoloji bağlı olmayan bazı standart sopa iyi olurdu çok farklı teknolojiler kullanabilir.

Ne önerirsin? Orada bazı java sınıf şifreleme yapıyor() şifresini() yüksek güvenlik standartları yakalamada olmadan çok komplikasyon ?

CEVAP
30 Temmuz 2009, PERŞEMBE


Yaygın DES, 3DES AES gibi kullanılabilen bazı standart simetrik cypher kullanmanızı tavsiye ederim. En güvenli algoritma olmasa da, uygulamaları yükler vardır ve sadece barkod bilgileri şifresini çözmek için gereken kimseye anahtar vermek lazım. javax.crypto.Cipher burada çalışmak istediğiniz nedir.

Hadi şifrelemek için bayt olduğunu varsayalım

byte[] input;

Sonra anahtara ihtiyacın olacak ve initialization vector bayt

byte[] keyBytes;
byte[] ivBytes;

Şimdi seçtiğiniz algoritma için Şifreleme başlatılamıyor:

// wrap key data in Key/IV specs to pass to cipher
SecretKeySpec key = new SecretKeySpec(keyBytes, "DES");
IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
// create the cipher with the algorithm you choose
// see javadoc for Cipher class for more info, e.g.
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");

Şifreleme şöyle:

cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec);
byte[] encrypted= new byte[cipher.getOutputSize(input.length)];
int enc_len = cipher.update(input, 0, input.length, encrypted, 0);
enc_len  = cipher.doFinal(encrypted, enc_len);

Ve bu gibi şifre çözme:

cipher.init(Cipher.DECRYPT_MODE, key, ivSpec);
byte[] decrypted = new byte[cipher.getOutputSize(enc_len)];
int dec_len = cipher.update(encrypted, 0, enc_len, decrypted, 0);
dec_len  = cipher.doFinal(decrypted, dec_len);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009