Wpis z mikrobloga

Czy da się zaszyfrować jakiś ciąg w taki sposób żeby szyfrując go po raz drugi otrzymać inny ciąg?

Czyli np.:
- szyfrujemy po raz pierwszy ciąg 'abcd' do postaci 'e3a1'
- szyfrujemy po raz drugi ten sam ciąg 'abcd' ale tym razem otrzymujemy postać 'c46a'
a mimo to da się odszyfrować oba wyniki otrzymując pierwotną postać.
Da się tak?

Jeśli tak to jak to zrobić?

#programowanie #kryptografia
  • 12
Niestety muszę zrobić własną prostą implementację więc chciałbym to zrozumieć. W jaki sposób przy rozszyfrowywaniu algorytm ma wiedzieć, którego klucza/soli ma użyć? Jak bcrypt rozwiązał ten problem?
@soma115: mozesz zrobic algorytm, ktory dla kazdego wejscia, bedzie generowal x hashy - mozesz zrobic to tak, ze liczysz cos takiego: hash(wejscie + leszkesmieszke1) gdzie 1 to jest jakis numer, mozesz tu uzyc np 5 pierwszych elementow ciagu fibonacciego - i przy deszyfrowaniu sprawdzasz wszystkie 5 mozliwosci - oczywiscie sol ktora dodasz przy zaszyfrowywaniu powinienes wybierac losowo z x, a nie np po kolei albo na podstawie pierwszej litery xD
@soma115: pewnie bym to zrobił w sposób taki, że przy szyfrowaniu dobierany jest losowy klucz, a po zaszyfrowaniu klucz jest doczepiany w którymś miejscu do szyfrogramu.
Program przy odszyfrowaniu najpierw wycina sobie klucz, a później przy jego pomocy odszyfrowuje resztę wiadomości.