Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обратимое шифрование перед записью в БД (https://javascript.ru/forum/misc/54771-obratimoe-shifrovanie-pered-zapisyu-v-bd.html)

Floyd 31.03.2015 15:30

обратимое шифрование перед записью в БД
 
Добрый день. Реализовать надо следующее: есть история болезни пациента, простой текст русские символы, utf-8, поле textarea. нужно перед отправкой аяксом в БД зашифровать этот текст с помощью ключа (врач его вводит). Защита просто от админов БД, чтобы не видели историю болезни в явном виде.
при выборке из БД в браузер врача передаются эти кракозябры, врач вводит свой ключ, кракозябры становятся нормальным текстом.

нашел примеры для английских символов, для русских - пока печаль.:cray:
подскажите пожалуйста где посмотреть?

рони 31.03.2015 16:22

Шифрование текста
 
Floyd,
шифровка алексу :write: :)
function fixedCharCodeAt(a, d) {
    var b = a.charCodeAt(d);
    if (55296 <= b && 56319 >= b) {
        var c = b, b = a.charCodeAt(d + 1);
        return 1024 * (c - 55296) + (b - 56320) + 65536
    }
    return 56320 <= b && 57343 >= b ? (c = a.charCodeAt(d - 1), 1024 * (c - 55296) + (b - 56320) + 65536) : b
}

function fixedFromCharCode(a) {
    return 65535 < a ? (a -= 65536, String.fromCharCode(55296 + (a >> 10), 56320 + (a & 1023))) : String.fromCharCode(a)
}

function code(a, d, b) {
    for (var c = "", e = 0; e < a.length; e++) var f = fixedCharCodeAt(a, e) + fixedCharCodeAt(d, e % d.length) * (b ? -1 : 1),
        c = c + fixedFromCharCode(f);
    return c
};
     var str = code('нашел примеры для английских символов, для русских - пока печаль.','12345test') // code(str, key, decode)
     alert(str);
     str = code(str,'12345test', true) ;
     alert(str)

ksa 31.03.2015 16:25

Зная врачей - пипец данным! :D

vasa_c 31.03.2015 16:52

Зачем шифрование?
Врачи и так крякозябрами пишут.

jsnb 31.03.2015 17:04

Ну вообще можно использовать вот это для шифрования. Там и AES и DES есть. Всяко надежнее, чем самописные велосипеды.

Floyd 01.04.2015 12:05

Цитата:

Сообщение от jsnb (Сообщение 364190)
Ну вообще можно использовать вот это для шифрования. Там и AES и DES есть. Всяко надежнее, чем самописные велосипеды.

да, я наталкивался на эту страницу. а какой из методов исползовать и не будет ли проблем с русязом?

Floyd 01.04.2015 14:09

Цитата:

Сообщение от рони
шифровка алексу

прикрутил этот метод, некорректно восстанавливает пробелы. вместо них -квадратик, код символа не тот наверное...
как пофиксить? спасибо!

рони 01.04.2015 15:12

Floyd,
какая кодировка на странице?

Floyd 01.04.2015 15:20

utf-8

Floyd 01.04.2015 15:30

ха, странно, облачил функцию code в две отдельные энкоде и декоде, и пробелы стало восстанавливать абсолютно нормально. как это??:blink:


Часовой пояс GMT +3, время: 13:57.