хэш-функция в JavaScript - PullRequest
       0

хэш-функция в JavaScript

0 голосов
/ 24 августа 2011

Я разрешаю пользователям загружать изображения на мой сайт. У некоторых из этих изображений есть пробелы в имени и прочем, и я хочу избежать этого в целом. Поэтому я хочу хешировать имя изображения.

Есть ли хеш-функция, которая поставляется с javascript? Я бы предпочел не писать свои собственные, поэтому я должен рассмотреть вопрос о записи / получении хеша md5? Есть ли что-то встроенное, что я мог бы использовать вместо этого?

Ответы [ 4 ]

1 голос
/ 24 августа 2011

Если вы хотите, чтобы строка была безопасной для Интернета, используйте encodeURI или encodeURIComponent , а затем декодируйте, используя decodeURI или decodeURIComponent по мере необходимости.

например,

var s = '*&@^# %@$!*)) jja;s kldfj';
var eS = encodeURIComponent(s); // *%26%40%5E%23%20%25%40%24!*))%20jja%3Bs%20kldf
alert(decodeURIComponent(eS));  // *&@^# %@$!*)) jja;s kldf

Каждый используемый веб-сервер и клиент должен иметь встроенную поддержку.

0 голосов
/ 24 августа 2011

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

0 голосов
/ 24 августа 2011

Ну, если вам нужно, вы можете создать слаг:

function string_to_slug(str) {
  str = str.replace(/^\s+|\s+$/g, ''); // trim
  str = str.toLowerCase();

  // remove accents, swap ñ for n, etc
  var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;";
  var to   = "aaaaeeeeiiiioooouuuunc------";
  for (var i=0, l=from.length ; i<l ; i++) {
    str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
  }

  str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
    .replace(/\s+/g, '-') // collapse whitespace and replace by -
    .replace(/-+/g, '-'); // collapse dashes

  return str;
}

, но я думаю, что другие авторы правы, говоря, что вы должны делать это на стороне сервера.единственное, что я думаю по-разному, - это использовать Guid в качестве имени файла изображения.

0 голосов
/ 24 августа 2011

См. Реализация MD5 от Paj

Заголовок:

/*
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...