tabel met data scramblen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koko

koko

21/09/2007 15:01:00
Quote Anchor link
Hoi,

Is het mogelijk om de gegevens van een tabel onleesbaar te maken? Of in ieder geval enkel leesbaar na het ingeven van een wachtwoord?

De structuur ziet er zo uit:

* Tabel met kandidaten (met id)
* Tabel met stemmen. Elke stem is 1 record met 6 velden (er kan gestemd worden op max 6 personen) die eventueel een waarde krijgen.

Ik weet dat het niet de ideale manier is van tabelstructuur, maar deze ligt vast. Kan ik nu de tabel met stemmen versleutelen zodat die enkel leesbaar wordt met een bepaald script ? Zo ja, hoe?
 
PHP hulp

PHP hulp

24/04/2024 06:33:56
 
Jan Koehoorn

Jan Koehoorn

21/09/2007 15:08:00
Quote Anchor link
Je zou de data al versleuteld op kunnen slaan. Er zijn meer dan genoeg PHP encryptie methodes
 
Jacco Engel

Jacco Engel

21/09/2007 15:11:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4


Ik raad je wel aan een willekeurig teken achter veld van een record te plakken. Anders krijg je 5 gelijke encodes en 1 verschillende en is nog makkelijk te zien wie waarop heeft gestemd
 
Frank -

Frank -

21/09/2007 15:19:00
Quote Anchor link
Waarom wil je dat doen? Normaalgesproken kan er niemand in de database komen, het encoden heeft opzich dan ook niet zo heel veel zin.

MySQL (aangenomen dat je MySQL gebruikt) heeft overigens ook een aantal functies hiervoor in huis, zie de handleiding.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Koko

koko

21/09/2007 15:22:00
Quote Anchor link
Hoi,

Het gaat over een geheime en anonieme stemming. Anoniem gebeurt door niet op te slaan wie op wie stemt. Geheim houdt in dat in principe niemand op geen enkel moment de stemmen zou mogen kunnen bekijken enkel als het technisch verkeerd gaat. Dat staat zo in het kiesregelement.
 
Jan Koehoorn

Jan Koehoorn

21/09/2007 15:25:00
Quote Anchor link
Offtopic:

Ik las ooit in een boek (Algorithms in C++) in een hoofdstuk over encryptie en decryptie dat een simpele en toch nog redelijk veilige methode deze is; verzin een redelijk lange key en haal die met een bitwise XOR over je brontekst. Je kunt op die manier een brontekst met dezelfde functie encrypten en decrypten.

Dus ongeveer zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL | E_STRICT);

    $src = 'the quick brown fox jumped over the lazy dog';
    $key = 'redelijk lange key';
    $key_len = strlen ($key);
    
    for ($i = 0, $j = 0, $n = strlen ($src); $i < $n; $i++, $j++) {
        if ($j == $key_len) {
            $j = 0;
        }

        $src{$i} = $src{$i} ^ $key[$j];
    }

    
    echo '<p>Encrypt: </p>';
    echo '<p>' . htmlentities ($src) . '</p>';

    
    for ($i = 0, $j = 0, $n = strlen ($src); $i < $n; $i++, $j++) {
        if ($j == $key_len) {
            $j = 0;
        }

        $src{$i} = $src{$i} ^ $key[$j];
    }

    
    echo '<p>Decrypt: </p>';
    echo '<p>' . htmlentities ($src) . '</p>';
?>

Uitvoer:
Encrypt:

 EKLNK E&#65533; ET&#65533;YL 

Decrypt:

the quick brown fox jumped over the lazy dog
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Frank -

Frank -

21/09/2007 15:34:00
Quote Anchor link
Quote:
Geheim houdt in dat in principe niemand op geen enkel moment de stemmen zou mogen kunnen bekijken enkel als het technisch verkeerd gaat.
Pfff, dat is vrijwel onmogelijk! Zodra iemand leesrechten op de tabel heeft (zie GRANT), dan kun je altijd de huidige stand achterhalen. Je kunt de data wel gaan versleutelen, maar iemand moet over de sleutel beschikken. Die persoon kan dus altijd de stand van zaken bekijken.

En dan heb ik het nog niet eens over het kraken van de code die je gebruikt, ook dat wordt met de huidige sneller computers steeds eenvoudiger.

Maar ook zonder sleutel kun je de verschillende resultaten zien, je weet alleen niet wat asfdgojuhafsg betekend, is dat nu juist veel of weinig? Je weet alleen dat asfdgojuhafsg 476 keer in de tabel voorkomt.

Ik zou beginnen met het ontnemen van de leesrechten op de tabel waarin de stemmen worden opgeslagen. Zie de handleiding hoe dat kunt doen. Ná het sluiten van de stembus kun je de rechten dan weer toekennen. Desondanks blijft er altijd minimaal 1 persoon die bij de data kan komen.
 
Koko

koko

21/09/2007 15:37:00
Quote Anchor link
Ja, maar het geheel moet maar 5 uur werken op een lokale server, dus dat zit wel snor. Enig ding (en daar heb je een punt) is het feit dat __iemand__ de sleutel moet kennen. Daar zit dus ook het probleem met het stemregelement. Maar we willen alle risico's zoveel mogelijk beperken.
 
Koko

koko

21/09/2007 15:55:00
Quote Anchor link
zou het misschien mogelijk zijn om die tabel gewoon door elkaar te schudden?

//Volgende keer pas k mijn post aan :-$ k had ni door da k laatste was//
Gewijzigd op 01/01/1970 01:00:00 door koko
 
Frank -

Frank -

21/09/2007 15:58:00
Quote Anchor link
Je hebt trouwens nog een lek in het systeem zitten, het logboek van de database. Hierin staat iedere query die wordt uitgevoerd. Op basis daarvan kan iemand dus ook de stemming volgen en online de huidige stand bekijken.

link

De beheerder(-s) van de server kan (kunnen) dus altijd meekijken.

Leuke klus, maar ik begin m'n twijfels te krijgen over de haalbaarheid.
 
Koko

koko

21/09/2007 16:09:00
Quote Anchor link
Hoi,

De server staat volledig bij ons lokaal (en ik ben de beheerder :-D). Mja, dan moeten ze maar rekenen op mijn eerlijkheid. Jammer genoeg kunnen we dat niet doen naar al de andere 200 stemmers, anders volgen we het stemregelement niet meer.
 
Frank -

Frank -

21/09/2007 16:15:00
Quote Anchor link
Wat ik al zei, met REVOKE (tegenovergesteld van GRANT) de lees-rechten ontnemen. Dan kan er niemand bij de data komen, versleuteld of niet, de boel is volledig afgeschermd van de buitenwereld. Na de stemming geef je weer leesrechten en klaar is kees.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.