Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie danych z formularza
Forum PHP.pl > Forum > PHP
mihow
Otóż mam formularz rejestracyjny ze standardowymi polami typu imię, nazwisko itp itd. Poprostu dane osobowe.
Danych z tego formularza nie chce jednak zapisywać ani w bazie danych ani na serwerze w pliku.
Chcę te dane wysłać jako załącznik mailem do osoby odpowiedzialnej za przetworzenie takich danych, ale nie otwartym tekstem tylko w sposób jak najbardziej utrudniający ich odczytanie przez osoby postronne (wiadomo - dane osobowe itd). Więc jakoś szyfrowane, algorytm.
Nie proszę o konkretną solucję. Chciałbym na ten temat poczytać gdzieś, ale nie wiem dokładnie gdzie.
Jeśli macie jakieś linki do stron na ten temat to poproszę ładnie :)

Pozdrawiam
Michał
stoprocent
Jest funkcja szyfrujaca [manual:823a24196c]md5()[/manual:823a24196c] , to chyba by wystarczylo .
mihow
Cytat
Jest funkcja szyfrujaca [manual:67ead7a124]md5()[/manual:67ead7a124] , to chyba by wystarczylo .


No ok. Ale mam zaszyfrować tą funkcją całego maila? Jak to potem rozszyfruję?
Liko
Możesz użyć http://pl2.php.net/manual/pl/function.base...se64-encode.php i kilku innnych. Wystarczy trochę poszukać i znajdziesz.
stoprocent
Przyklad z manuala , masz tu gotwe funkcje .

[php:1:89f528b6e2]<?php
function bytexor($a,$b,$l)
{
$c="";
for($i=0;$i<$l;$i++) {
$c.=$a{$i}^$b{$i};
}
return($c);
}

function binmd5($val)
{
return(pack("H*",md5($val)));
}

function decrypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$m=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "n";
return($sifra);
}

function crypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "n";
return($sifra);
}

// Example of usage...

$message = "This is a very long message, but it is very secret and important
and we need to keep the contents hidden from nasty people who might want to steal it.";

$key = "secret key";

$crypted = crypt_md5($message, $key);
echo "Encoded = $crypted<BR>"; // returns Śýź=Ż śňşĎ`Źů<ÂH ­ëÇ{.�1ş{ďĺ�É�Ń�JŢVŁ+ßłj�eÎ

$uncrypted = decrypt_md5($crypted, $key);
echo "Unencoded = $uncrypted"; // returns This is a very long message (etc)
?>[/php:1:89f528b6e2]
mike
md5() to funkcja haszująca, co oznacza że nie odzyskasz zahaszowanej treści (algorytm jednostronny).
Polecam zainteresować się base64_encode i base64_decode
stoprocent
Md5 jest algorytmem jedno stronnym ale przykald z manuala dziala .
mihow
Cytat
Możesz użyć http://pl2.php.net/manual/pl/function.base...se64-encode.php i kilku innnych. Wystarczy trochę poszukać i znajdziesz.


OK. Ale jak teraz osoba używająca Outlook'a odkoduje taką wiadomość?
scanner
Cytat
Przyklad z manuala mowi co innego .
Drugi Puciek?
Nie da się zdekodować md5().
BYło wiele razy i proponuję zamknąc ten fragment dyskusji.
stoprocent
Mozesz wyslac wiadomosc w formacie html , w liscie dac buttona np odkoduj w polu hidden tresc wiadomosci i po nacisnieciu odkoduj dane wyslane zostana na twoja strone do odblokowywania , otworzy sie okno przegdarki z trescia listu . Nie jest to moze super bezpieczne ale moze dzialac tongue.gif .
Korzystajac z base64 mozna uzyc jakichs z programikow odkodowujacych .
stoprocent
Scanner , zmienilem post . Przyznaje sie nie czytalem duzo o md5 , a oparlem wypowiedz na manualu . Doczytalem i poprawilem .
Dla ciekawych chcialbym tylko podac ten link http://www.linuxfan.pl/dyskusje/pcol.2002/....2002/5373.php3
hawk
Oj, uśmiałem się biggrin.gif.
Cytat
Dla ciekawych chcialbym tylko podac ten link http://www.linuxfan.pl/dyskusje/pcol.2002/....2002/5373.php3

W przypadku 6-znakowego hasła (i to tylko alfanumerycznego) to jeszcze może pójdzie. W przypadku całej wiadomości - każda próba odkodowania jest maksymalnym kretynizmem.

Co do base64: to nie jest funkcja szyfrująca, tylko sposób zapisu ciągu binarnego w postaci tekstowej. Sposób kodowania. Nie utrudnia to odczytania przez osoby postronne (chyba że mamy do czynienia w kompletnymi laikami, ale wtedy wystarczy cokolwiek).

Jeżeli autor chce szyfrowania (nie hashowania i nie kodowania) to widzę kilka rozwiązań:

1) Zastosować jakiś banalny szyfr bezkluczowy, typu ROT-13, lub kombinacja takich metod. Dziecinnie proste do odszyfrowania, ale pewną barierę stanowi, i nie trzeba bawić się w klucze.

2) Ciężka artyleria. DES, 3DES, AES, Rijndael... Polecam rozszerzenie mcrypt. To ci praktycznie gwarantuje bezpieczeństwo, ale odkodowanie wymaga trochę pracy, i potrzebujesz klucz.

3) RSA. Nie wiem jak php to wspiera, sprawa jest nawet bardziej złożona, ale nie potrzebujesz tajnego klucza. Dodatkowo, do RSA jest bardzo popularne.

4) Rozwinięcie powyższego: PGP. Nie mam pojęcia czy php w ogóle potrafi się w to wpiąć, ale nawet Outlook powinien potrafić automatycznie odkodować wiadomość zaszyfrowaną przy użyciu PGP.
stoprocent
Troche sie skompromitowalem wiec postanowilem doczytac troche o szyfrowaniu , i znalazlem ciekawy artykul o RSA .
Znalazlem tam takze kod skryptu szyfrujacego .
http://archives.neohapsis.com/archives/php...0005/61-rsa.php

edit : Scanner mowisz i masz , a ja nie pomyslem .
scanner
Nasto, a musiałeś tu wrzucac ponad 200 linii kodu? nie szło dac tylko linka?
Wyedytuj swojego posta.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.