[ zimbra @ 27.11.2018. 07:27 ] @
Imam problem koji ne umem da rešim. Postavka je relativno jednostavna, imam aplikaciju poput WhatsUP koja treba da razume kontakt listu. Ako su osoba A i osoba B korisnici aplikacije i osoba A ima osobu B u svojim kontaktima ja treba osobi A da omogućim da kontaktira osobu B kroz aplikaciju. Da bi ti to uradio ja moram da znam da li je osoba B kontakt osobe A.

U "nesigurnom svetu" ja bih to uradio tako da
- čuvam broj telefona svakog korisnika (dakle imam telefon osobe A i imam telefon osobe B)
- čuvam celu kontakt listu svakog korisnika (dakle u listi kontakata osobe A vidim i telefon osobe B)

Ako vidim da korisnik A ima u kontaktima korisnika B (a to lako mogu da vidim ako imam nekriptovane brojeve korisnika i njihove kontakt liste) dalje lako mogu da userid korisnika A povežem sa userid korisnika B i pošaljem štagod.

E sad, moderni "kvazi-sigurni" svet zahteva da ja nemam nikakve personalne podatke korisnika nekriptovane u bazi, i ne samo da treba da budu nekriptovani, nego treba da budu, za mene, nečitljivi!

Ono što mi jedino pada kao ideja je da čuvam neki hash(brojtelefona) u bazi umesto brojtelefona, ali mi deluje da bi to značajno usporilo sve operacije, pa reko da priupitam dal je neko rešavao problem da ne izmišljam toplu vodu.
[ dusans @ 27.11.2018. 08:32 ] @
Ako govorimo o relacionoj bazi, šta fali tehničkim ključevima?
[ Deunan @ 27.11.2018. 11:43 ] @

Nece hash telefona da ti uspori operacije. Neces ti da dekodiras svaki broj telefona u bazi pa onda da uporedjujes.
Kad user A posalje broj telefona kome zeli da posalje poruku, ti taj broj enkriptujes i kao takav uporedjujes. Samo indexiraj dobro kolone.

[ zimbra @ 01.02.2019. 16:45 ] @
Citat:
dusans:
Ako govorimo o relacionoj bazi, šta fali tehničkim ključevima?


Relaciona baza svakako, PSQL najverovatnije, mada bih voleo da ne izgubim podršku za MySQL.

Šta su tehnički ključevi?
[ zimbra @ 01.02.2019. 16:50 ] @
Citat:
Deunan:
Nece hash telefona da ti uspori operacije. Neces ti da dekodiras svaki broj telefona u bazi pa onda da uporedjujes.
Kad user A posalje broj telefona kome zeli da posalje poruku, ti taj broj enkriptujes i kao takav uporedjujes. Samo indexiraj dobro kolone.


Nešto slično već radim. Javlja se problem sa imenom kontakta. Da bih poslao puš koji je personalizovan (Pera ti pisao) moram da imam to ime kod sebe. Mogu teoretski da mu pošaljem puš u kom stoji name koji je Pera stavio u sistem kao svoj nick, ali znam kako je meni kad mi piše da mi je stigla poruka od "VelikiCAR". Ali deluje da tu nema rešenja.

Za brojeve izgleda da SHA2 pije vodu, radi ok a deluje ceo sistem siguran (napravio sam da se konverzija broja u SHA2 radi na klijentu, ne na serveru).
[ zimbra @ 01.02.2019. 16:51 ] @
No, htedoh da proverim, možda je neki od proverenih sistema, koji se koriste već na veliko, i koji su se pokazali da valjaju, public, pa da ne izmišljam toplu vodu.
[ Shadowed @ 01.02.2019. 18:17 ] @
Na serveru cuvas:
-Hash broja telefona A
-Hash broja telefona B
-Relaciju A ima br. od B (ovde A i B identifikujes po hash-u).

Na klijentu imas imenik. Takodje, uz svakog kontakta u imeniku cuvas i hash broja.
Kada posaljes poruku sa servera klijentu saljes informaciju "Hash taj i taj ti je pisao" a onda na klijentu nadjes u imeniku ko ima taj hash i njegovo ime napises.

Na taj nacin na serveru ne cuvas ni broj ni ime.

Zapravo, za ovu svrhu taj hash i ne mora biti hash, moze biti neki random GUID.
[ jablan @ 01.02.2019. 21:42 ] @
Zašto ne bi čuvao brojeve telefona (naravno samo korisnika koji su članovi) na serveru?