Как зашифровать или токенизировать имя пользователя и маркер даты? - PullRequest
2 голосов
/ 28 января 2012

Необходимо передать токенизированное (зашифрованное) имя пользователя и дату из веб-приложения A в веб-приложение B с помощью параметра url.Что-то вроде http://webappB? Username = userA × tamp = 13445341313 следует отправить как http://webappB? Token = geufjsggtj26hjdhcjre87klj3 .Принимающее веб-приложение B должно иметь возможность декодировать токен в исходные параметры.Какая технология предлагает простое решение, доступное для .NET и Java?Спасибо

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Я хотел бы поделиться решением, которое я нашел после еще нескольких исследований. Я выбрал очень простой симметричный метод шифрования на основе XOR в пользу использования шифрования на разных платформах.

Часть кода говорит более тысячи слов:

// webappA, encode URL parameter
    byte[] userBytes = username.getBytes("UTF-8");
    byte[] keyBytes = key.getBytes("UTF-8");
    //XOR scramble
    byte[] encrypted = new byte[userBytes.length];
    for(int i = 0; i < userBytes.length; i++){
       encrypted[i] = (byte)(userBytes[i] ^ keyBytes[i % keyBytes.length]);
    }

    BASE64Encoder encoder = new BASE64Encoder();
    String encoded = encoder.encode(encrypted);

 // webappB, decode the parameter
    BASE64Decoder decoder = new BASE64Decoder();
    byte[] decoded =  decoder.decodeBuffer( encoded );
    //XOR descramble
    byte[] decrypted = new byte[decoded.length];
    for(int i = 0; i < decoded.length; i++){
       decrypted[i] = (byte)(decoded[i] ^ keyBytes[i % keyBytes.length] );
    }
0 голосов
/ 28 января 2012

То, что вы предложили, очень просто и не требует включения технологий, выходящих за рамки того, что Java и .NET уже предлагают. Просто создайте HTTP-запрос, запустите его по правильному URL и прослушайте ответ.

Ссылки на классы

Если вы думаете,Вы будете делать больше этого, или данные станут более частыми, сложными или структурированными, я настоятельно рекомендую вездесущий SOAP Википедия протокол для расширяемости и модульности.

...