• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Applescript mit activation code

rootie

Filippas Apfel
Registriert
30.06.11
Beiträge
8.848
Wieso sollen wir was erfinden? Nutz eine ordentliche Programmiersprache und Public/Private Key - Verfahren und gut isses :)
 

Kernelpanik

Maren Nissen
Registriert
05.03.04
Beiträge
2.303
Wieso sollen wir was erfinden? Nutz eine ordentliche Programmiersprache und Public/Private Key - Verfahren und gut isses :)
Ja, gerne. Ich habs aber nur bis AppleScript geschafft. Mehr hab' ich nicht verstanden. Ich hab mal ne Weile Tutorials mit XCode ausprobiert, bin aber nirgends hin gekommen.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Das Problem ist eben nicht die Verschlüsselung, sondern dass jeder gespeicherte Text im Klartext lesbar und austauschbar ist. Selbiges gilt auch für andere Datentypen wie Boolean oder Integer. Das ist ein bisschen wie ein super starkes Schloss, das mit 2 Schrauben in der Tür befestigt ist.

Nur Nullen und Einsen sind (meines Wissens nach) nicht mehr lesbar, daher mein Ansatz die ASCII-Werte der einzelnen Buchstaben ins Binärsystem umzuwandeln.

Ich habe das Skript mal etwas kommentiert und bei der Umwandlung vom Dezimal- ins Binärsystem das Horner Schema implementiert, das macht es deutlich einfacher:

Code:
property pass : {{1, 0, 1, 0, 0, 0, 0}, {1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 0, 0, 1, 1}, {1, 1, 1, 0, 0, 1, 1}, {1, 1, 1, 0, 1, 1, 1}, {1, 1, 0, 1, 1, 1, 1}, {1, 1, 1, 0, 0, 1, 0}, {1, 1, 1, 0, 1, 0, 0}, {1, 1, 0, 0, 0, 1}} -- Passwort als binäre Liste, pro Buchstabe eine Liste

-- Passwortabfrage:
repeat
    set theAnswer to text returned of (display dialog "Passwort:" default answer "")
    if isValid(theAnswer) then
        display dialog "richtig"
        exit repeat
    end if
end repeat

-- restlicher Programmcode:



-------------------------------

-- Subroutine  zum Prüfen des Passworts
-- Eingabe: text
-- Rückgabe: true oder false
on isValid(theKey)
    textToBin(theKey) is pass
end isValid

-- Subroutine zum Umwandeln von Text in binäre Listen
-- Eingabe: Text
-- Ausgabe: Liste mit Binären Listen
on textToBin(theText)
    set theBins to {} -- Liste erstellen
    repeat with anId in id of theText-- id ist der ASCII-Wert des Buchstabens
        set end of theBins to decToBin(anId) -- Binäre Liste für den ASCII-Wert an die Liste anhängen
    end repeat
    return theBins
end textToBin

-- Subroutine zum Umwandeln vom Dezimal- ins Binärsystem nach dem Horner Schema
-- Eingabe: Zahl
-- Ausgabe: Binäre Liste
on decToBin2(num)
    set binary to {}
    repeat
        set beginning of binary to num mod 2
        set n to n div 2
        if n < 1 then
            exit repeat
        end if
    end repeat
    return binary
end decToBin2

Das Passwort kann/sollte natürlich noch zusätzlich gehasht werden.
 
  • Like
Reaktionen: Kernelpanik