Sifriranje/Dešifriranje v C#

Problemi z drugimi jeziki kot so c++, cgi, java, itd.
Odgovori
domen80
Prispevkov: 181
Pridružen: 23.01.2008 16:37:19

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a domen80 » 09.07.2010 14:38:34

Zdravo,

Recimo da je številka kreditne kartice "1111-1111-1111-1111", in če šifriram dobim: "X5AKRIJAnbE8o750xq0z6l5LQjHqHbz / ". Ok sedaj sem uspešno šifriral in to zapišem v bazo.
Zdaj pa moram nazaj poklicati pravilno številko kreditne kartice: 1111-1111-1111-1111.
Seveda to lahko vidi uporabnik, ko se prijavi.

V bazo se ne shrani prava vrednost, ampak šifrirana. Uporabniku prikažem dešifrirano številko kartice.

V čem je sploh problem?

Namesto, da imam v bazi shranjeno: 1111-1111-1111-1111, imam tole: X5AKRIJAnbE8o750xq0z6l5LQjHqHbz / .
Če ta številka pride v roke nepridipravemu, jo lahko dešifrira tako kot sem jo jaz.

Torej zanima me bistvo šifriranja in dešifriranja? Kaj sem s tem pridobil, ko sem uporabil to možnost, saj je vseeno ali je v bazi shranjena prava vrednost, ali šifrirana. Če nekdo udere v bazo in dobi ta podatek, ga bo lahko enostavno razvozlal.

Obstaja kakšna možnost, da se dešifrirat te številke ne da?

Hvala za odgovor.

Silver_War
Prispevkov: 664
Pridružen: 01.06.2004 14:50:41

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a Silver_War » 09.07.2010 21:12:13

Vsak podatek, ki ga šifriraš, se da tudi dešifrirati. Vse kaj moreš ti oz. nepridiprav vedet je postopek po katerem se je ta podatek šifriral, ter ga obrnit.
Cilj šifriranja je oteževanje vpogleda v določene podatke. Ravno zaradi tega se nenehno razvijajo novi vse bolj in bolj zapleteni algoritmi za šifriranje podatkov. Cilj teh algoritmov ni da podatke naredijo takšne, da jih ni mogoče dešifrirati, temveč da so tako zapleteni, da bi za odkritje tega aplgoritma nek nepridiprav potreboval toliko časa, da ga že prej vse mine.

Uporabniški avatar
krho
Prispevkov: 709
Pridružen: 11.01.2003 23:02:56

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a krho » 10.07.2010 08:35:12

se opravičujem za kričanje.
TI STRANKI NIKOLI VEČ NE POKAŽEŠ CELOTNE ŠTEVILKE KREDITNE KARTICE. Ob naslednjih plačilih rečeš Visa s zadnjimi številkami 1111
Uredite zbirko filmov, tv serij in iger - http://xcollect.sf.net
Zamenjate leglo virusov s preprostim in naprednim odjemalcem elektronske pošte. - http://www.simail.si

domen80
Prispevkov: 181
Pridružen: 23.01.2008 16:37:19

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a domen80 » 11.07.2010 12:34:05

se opravičujem za kričanje.
TI STRANKI NIKOLI VEČ NE POKAŽEŠ CELOTNE ŠTEVILKE KREDITNE KARTICE. Ob naslednjih plačilih rečeš Visa s zadnjimi številkami 1111
Se strinjam takole narediš: SELECT RIGHT('1234567891012345',4)

M.C
Prispevkov: 630
Pridružen: 24.02.2003 14:27:43

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a M.C » 12.07.2010 10:44:56

Njaboljša logika je public private key.
1.Na clienta pošlješ public key. Kar uporabnik vtipka se zakodira s tem key-em.
2.kar dobiš nazaj na server dekodiraš s private key-em ki ga nisi dal nikamor in ga imaš samo ti.

Shranjevanje tega v bazo je čisto druga zgodba, logiko kodiranja imaš v app (lahko tudi public - private key), in če ti to kdo ukrade, pol tko ne moreš nič.
preberi si tole: link

A se to da razbit, ne vem, po moje pa dost težje kot sicer.
Order is heavens first rule. Therefore some must be better than the rest.

Pepe
Prispevkov: 104
Pridružen: 06.10.2004 10:09:30

Sifriranje/Dešifriranje v C#

Odgovor Napisal/-a Pepe » 13.07.2010 07:12:01

Zakaj pa bi tako občutljiv podatek sploh shranjeval v bazo? Vsaj za čas daljši od izvedbe plačila...

Odgovori