uczelnia

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("---------------");
	}
}

Tags: , , ,

niedziela, Luty 13th, 2011 java, kryptografia, uczelnia Brak komentarzy

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("---------------");
	}
}

Tags: , , ,

niedziela, Luty 13th, 2011 java, kryptografia, uczelnia Brak komentarzy

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();
	}
}

Tags: , , ,

niedziela, Luty 13th, 2011 java, kryptografia, uczelnia Brak komentarzy

Zmiany, plany, status

Przepraszam za taką przerwę w postach drodzy czytelnicy. Dużo się działo, wiele się zmieniło w moim życiu.

Pierwszą rzeczą jest to, że w końcu odnalazłem szczęście u boku wspaniałej kobiety, która jak to mówił Ten Typ Mes:

„…dodaje pierwiastek kobiecości do rozmów, nie tylko do ciastek…”

Budzenie się rano z myślą o kimś, który potrafi tak naładować mnie pozytywną energią sprawia, że staje się lepszym człowiekiem.

Kolejną zmianą w moim życiu jest zakończenie etapu freelancera. W poniedziałek rozpoczynam pracę, na etacie. Niestety nie mogę zdradzić gdzie, ponieważ obowiązuje mnie klauzula poufności. Teraz kończę wszystkie projkety, których się podjąłem w ostatnim miesiącu, bo obowiązuje mnie klauzula o zakazie konkurencji.

Przejdźmy zatem do planów. Długie lata temat pracy magisterskiej wydawał mi się sprawą tak abstrakcyjną, że nigdy nie brałem tego pod uwagę. Staneliśmy przed problemem wyboru tematu (Ja i Maciek, z którym to będziemy pisali pracę). Po burzy mózgów doszliśmy do następujących wniosków:

Technologie:

  • PHP – phpAMF  remoting funkcji z php
  • FlashVideo – odtwarzanie vido
  • FLEX – Podstawa aplikacji GUI + Upload Plików
  • MySQL – przechowywanie testów jak i ich wyników

Opis aplikacji:

  1. Tworzenie Testu
    1. Upload pliku z wykładem (vido)
    2. Konwersja server-side avi, mpg, wmv do flv
    3. Ustawianie czasu wyzwalaczy, które będą uruchamiały pytania podczas oglądania materiału
    4. Dodawanie pytań, ustawianie poprawnych odpowiedzi (test jednokrotnego/wielokrotnego wyboru)
    5. Testowy Test, zapisanie drzewa XML do bazy danych
  2. Przeprowadzanie Testu
    1. Materiał Video jest odtwarzany
    2. Odtwarzacz dochodzi do wyzwalacza gdzie znajduje się pytanie
      1. Kontrolki Playera są blokowane
      2. Można jedynie odpowiedzieć na pytanie
      3. Odpowiedź na pytanie jest zapisywane do bazy danych
      4. Odblokowanie kontrolek playera i wznowienie playbacku
    3. Po zakończeniu odtwarzania filmu wyświetla się podsumowanie z wynikiem testu, oraz propozycjami fragmentów, które wypadało by powtórzyć
  3. Statystyki grupy studentów
    1. Informacje dla wykładowcy o najsłabiej opanowanym materiale przez grupę itp.

Po dalszych ustaleniach z promotorem, rozszerzyliśmy zakres funkcjonalności o plugin do systemu e-learningowego OpenSurce o nazwie OLAT, który jest rozwijany na uniwersytecie w Zurychu.

Co do statusu, to co rano budzę się z kacem od YouTube Data API, oraz os-commerce bo muszę freelance skończyć, nim podpiszę umowę.

Pozdrawiam,

mGz

Konkurs na logo mojego wydziału

Zorganizowano konkurs na logo mojego wydziału. ( http://samorzad.wmid.amu.edu.pl/samorzad/html/index1.php)

Jak wiadomo teraz jestem wesołym bezrobotnym zatem i cierpie na nadmiar wolnego czasu więc postanowiłem przygotować swoją pracę konkursową. Przyświecały mi dwa założenia. Po pierwsze ma być ekstremalnie proste. Po drugie miało przypominać wzór matematyczny.

Oto moja praca konkursowa :)

logowmi

Tags: ,

środa, Luty 25th, 2009 projekty, uczelnia 1 komentarz

After the session

Wszystko zadne, nawet największy kozak w pierwszym terminie. W międzyczasie poszukuje pracy o dziwo nawet czynnie, bo już mój fejm na goldenline się chyba wyczerpał.

W między czasie by mój talent programistyczny nie zardzewiał do reszty zająłem się ambitnym przedsięwzięciem, polegającym na stworzeniu Thema do wordpressa dla mojego znajomego co zajmuje się renowacją starych motorów. O dziwo stworzyłem również własnoręcznie na tablecie Wacom Bamboo wyczesany layout i właśnie jestem w trakcie jego cięcia. Ja rozumiem, że pojęcie wyczesany jest mocno przegięte. Również typografia pozostawia wiele do życzenia, ale to już są pierdoły, którymi można zająć się podczas pisania CSS’ów.

Layout Classic Motor

Layout Classic Motor

Jak to zwykle bywa po dobrze wykonanym obowiązku czas odpocząć więc dnia 7.03 uderzam tutaj:

Wyświetl większą mapę

Tymczasem zostawiam wam coś do przemyśleń, a’propos waszych wymówek w pracy.

Będzie mnie jeszcze można zobaczyć na najbliższym Barcampie oraz marcowym spotkaniu Poznań Adobe User Group

Pozdrawiam wszystkich Allegrowiczów,

mGz

Tags: , ,

session

Witam,

Ostatnio mało piszę bo Szara Egzystencja Stała się Jebaną Apokalipsą. Tak dla tych co rebus był za trudny trwa sesja w najlepsze.  50% egzaminów udało już przebrnąć nawet z pozytywnym efektem teraz jeszcze tylko wyniki wczorajszego egzaminu z Modelowania Systemów Informatycznych i W przyszłą sobotę ostatni egzamin. Koniec sesji wiąże się również z częstym piciem, więc pewnie znowu będzie przerwa na kaca w postach.

Poz a tym wszystkim jestem od tygodnia wesołym bezrobotnym. Cieszę się urlopem oraz czasem, który mam i mogę po poświęcić na naukę, żeby potem znowu nie ganiać jakiegoś egzaminu do maja w sesji zimowej :) .

Pozdrawiam,

mGz

Tags:

poniedziałek, Luty 9th, 2009 czas wolny, uczelnia 1 komentarz

Pierdol Studia

Pierdol Studia

Tags: ,

wtorek, Styczeń 27th, 2009 czas wolny, uczelnia 2 komentarzy

Projekt dyplomowy

Generalnie udało nam się skończyć na czas dokumentacje. Śpiąc w ciągu weekendu łącznie może 4 godziny. Tuż przed prezentacją udało nam się nawet oprawić dokumentacje.

Potem tylko 30 min  stresu i wskoczyło 5 do indexu. Jeszcze tylko egzamin licencjacki i wakacje :)

Pozdro dla:

Karoliny za super tosty, Sunday’a, Mareckiego, Tempiny.

Tags: ,

poniedziałek, Czerwiec 23rd, 2008 uczelnia Brak komentarzy

Po sesji…

Udało się zdać bez bólu całą sesję. Ostania na studiach licencjackich. Już tylko pozostało mi obronić mi projekt dyplomowy oraz zdać egzamin dyplomowy z cyklu 60 pytań True or False.  Ciężki tydzień się znowu zapowiada naukowo-zawodowy. W piątek mam deadline fazy projektu e-learningowego a w sobote/niedzielę muszę oddać projekt dyplomowy. Odstawiam spanie.

Pozdro,

mGz

Ps.

Nie myślcie, że się obijam i na blogu nie pisze. Jestem już na finiszu z postem o środowisku webdevelopera. Premiera Soon :) Uzupełniam linki do stron, i musze porobić kilka Screenshotów.

Tags: , ,

środa, Czerwiec 18th, 2008 praca, uczelnia 1 komentarz