String unkenntlich machen. Geht das so?

ui_3k1

ui_3k1

Gesperrt
197
Hallo,

habe mich etwas über den public Key (aus der Developer Console) schlau gemacht. Wobei "schlau gemacht" es nicht 100%tig trifft, denn so richtig sicher bin ich mir immer noch nicht.

Aber vielleicht weiß ja hier jemand was...
Ist es richtig, dass es "nur" darum geht, dass niemand den String austauschen kann und man ihn deswegen verschleiert? Sozusagen um dem Hacker die Arbeit zu erschweren?
Die Aussagen gehen hier teilweise auseinander und die Doku ist auch nicht wirklich eine Hilfe. Jedenfalls bin ich nicht der Einzige der nicht schlau draus wird, was Google einem hier sagen möchte.
Protect your Google Play public key

To keep your public key safe from malicious users and hackers, do not embed it in any code as a literal string. Instead, construct the string at runtime from pieces or use bit manipulation (for example, XOR with some other string) to hide the actual key. The key itself is not secret information, but you do not want to make it easy for a hacker or malicious user to replace the public key with another key.
Alternative:
Irgendwo habe ich gelesen, dass es letztlich alles nichts bringt, außer eine HTTPS Verbindung, die auch nochmal gesondert geschützt werden muss.
Ist so was zu empfehlen?

Meine aktuelle "Lösung" sieht so aus:

Code:
import java.util.Scanner;

/**
 * Created by Martin on 10/17/2014.
 * obscuredStringObscurer
 */
public class main {

    public static void main(String[] args) {

        showRiddle();

        String clear = ""; // Ausgangsnachricht

        Scanner scanner = new Scanner(System.in);

        clear = scanner.nextLine();

        int xD = makeSomeValue(); // eine Zahl ;-)

        System.out.println("Ausgangsnachricht: " + clear + "\n");

        System.out.println("Nebel: " + xD + "\n");

        String obscured = stringTransform(clear, xD);

        String claraFall = stringTransform(obscured, xD);

        System.out.println("Verschleiert: " + obscured + "\n");

        System.out.println("Clara Fall: " + claraFall + "\n");

    }


    /**
     * Ein kleines Rätsel
     */
    private static void showRiddle() {
        System.out.println("--../.././--/.-../../----//-.-./.-.././...-/./.-.//...-/---/-.//-../../.-.////");
    }


    /**
     * String Manipulation (X-OR)
     */
    static String stringTransform(String s, int i) {
        char[] chars = s.toCharArray();
        for (int j = 0; j < chars.length; j++)
            chars[j] = (char) (chars[j] ^ i);
        return String.valueOf(chars);
    }


    /**
     * Nicht sehr zufällig
     */
    private static int makeSomeValue() {
        return (int) System.currentTimeMillis() % 548;
    }

}
Ausgabe:

--../.././--/.-../../----//-.-./.-.././...-/./.-.//...-/---/-.//-../../.-.////
Wadde hadde du de da
Ausgangsnachricht: Wadde hadde du de da

Nebel: 476

Verschleiert: ƋƽƸƸƹǼƴƽƸƸƹǼƸƩǼƸƹǼƸƽ

Clara Fall: Wadde hadde du de da
Habs erstmal in Java geschrieben um es dann auf mein Projekt anzupassen.

Was meint ihr?

Greetz
 
Danke, nach so einer handfesten Aussage hab ich gesucht. :)

Ob es die App wert ist, weiß ich nicht - aber ich will es auf jeden Fall hinbekommen. Die Serververbindung steht und funktioniert. Und nachdem ich nun mehrere Tage mit der UTF-8 Konvertierung verschwendet habe, ist mein Interesse was Neues zu sehen so groß wie selten :)
 

Ähnliche Themen

G
Antworten
8
Aufrufe
1.196
gnome2012
G
OnkelLon
Antworten
7
Aufrufe
1.209
thomaspan
thomaspan
Gemini-Media
Antworten
1
Aufrufe
1.844
swa00
swa00
Zurück
Oben Unten