java
Java Szyfrowanie DES/ECB/NoPadding
package list1; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class CW1 { public static byte[] getKey(int bytes) throws NoSuchAlgorithmException{ KeyGenerator kGen = KeyGenerator.getInstance("DES"); byte[] key = new byte[bytes]; int i = 0; while(i < bytes){ kGen.init(56); SecretKey sKey = kGen.generateKey(); byte[] rawKey = sKey.getEncoded(); for(int j = 0; (j < rawKey.length)&(j+i < key.length) ; j++){ key[j+i] = rawKey[j]; } i = i + 7; } return key; } public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { /* * długość wiadomość musi być podzielna przez 8 * żeby można było użyć NoPadding */ byte[] input = "WiadomoscDoZakodowania!!".getBytes(); byte[] encrypted = null; byte[] decrypted = null; KeyGenerator kGen = KeyGenerator.getInstance("DES"); SecretKey sKey = kGen.generateKey(); byte[] keyBytes = sKey.getEncoded(); Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(keyBytes, "DES")); encrypted = cipher.doFinal(input); cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBytes, "DES")); decrypted = cipher.doFinal(encrypted); print(input); print(encrypted); print(decrypted); System.out.println(Arrays.equals(input, decrypted)); } public static void print(byte[] b) { System.out.println(new String(b)); System.out.println("Length: " + b.length * 8); System.out.println("---------------"); } }
Java szyfrowanie AES/ECB/PKCS5Padding
package list1; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class CW2 { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { byte[] input = "Wiadomosc do zakodowania!".getBytes(); KeyGenerator kGen = KeyGenerator.getInstance("AES"); kGen.init(128); SecretKey sKey = kGen.generateKey(); byte[] rawKey = sKey.getEncoded(); SecretKeySpec sKeySpec = new SecretKeySpec(rawKey, "AES"); // algorytm AES, tryb ECB, dopełnianie w PCKS#5 Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, sKeySpec); byte[] encrypted = cipher.doFinal(input); cipher.init(Cipher.DECRYPT_MODE, sKeySpec); byte[] decrypted = cipher.doFinal(encrypted); print(input); print(encrypted); print(decrypted); // System.out.println(MessageDigest.isEqual(input, decrypted)); System.out.println(Arrays.equals(input, decrypted)); } public static void print(byte[] b){ System.out.println(new String(b)); System.out.println("Length: " + b.length * 8); System.out.println("---------------"); } }
Java Szyfrowanie DES/ECB/SKCS5Padding
package main; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; public class Main { public static void main(String args[]) { try { byte[] teskJawny = "Teskt jawny".getBytes(); byte[] klucz = "klucz".getBytes(); System.out.println(XORCoderToString(XORcoder(teskJawny, klucz), klucz)); byte[] keyBytes = null; SecretKeySpec key = new SecretKeySpec(keyBytes,"DES"); Cipher szyfr = Cipher.getInstance("DES/ECB/SKCS5Padding"); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchPaddingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * Metoda wykonuje operacje XOR na podanych tablicach i zwraca wynik w nowej tablicy * @param msg tablica wiadomosci * @param key tablica klucza * @return tablica po operacji XOR */ public static byte[] XORcoder(byte[] msg, byte[] key) { byte[] ret = new byte[msg.length]; for(int i=0; i<msg.length; i++) ret[i] = (byte) (msg[i]^key[i%key.length]); return ret; } /** * Metoda wykonuje operacje XOR i zwraca wynik w postaci tekstu * @param msg testk do operacji XOR * @param key klucza do operacji XOR * @return teskt otrzymany po operacji XOR */ public static String XORCoderToString(byte[] msg, byte[] key) { StringBuilder sb= new StringBuilder(); byte[] tmp = XORcoder(msg, key); for (byte b : tmp) { sb.append((char)b); } return sb.toString(); } }
Search
AdTaily
Najnowsze wpisy
Kategorie
- bez kategorii (38)
- c++ (2)
- czas wolny (28)
- java (3)
- kryptografia (5)
- praca (26)
- projekty (24)
- przemyślenia (15)
- uczelnia (13)
- Webdevelopment (33)
- Adobe AIR (2)
- Adobe Flex (2)
- AJAX (3)
- Apache (1)
- cloud computing (1)
- doctrine (2)
- GoogleMaps (4)
- JavaScript (3)
- jQuery (1)
- MySql (3)
- Optymalizacja (1)
- paypal (1)
- php (14)
- symfony (3)
- Symfony 1.4 (1)
- Symfony 2.0 (1)
- WordPress (4)
Przyjaciele
Archiwa
Tagi
Barcamp
bug
czas wolny
DES
doctrine
FireFox
fix
Flex
google maps
ipn
java
Java Script
Konferencje
kryptografia
layout
marzec
mysql
Onetimepad
paypal
php
podsumowanie
praca
projekty
Przeglądarki
seo
sesja
sklep
sylwester
symfony
Szyfrowanie
tutorial
twitter
uczelnia
update
urlop
Webdevelopment
wordpress
XOR
zakopane
zdrowietouroda.pl
zły klient
życie