我允许用户将图片上传到我的网站。其中一些图像在名称和内容中有空格,我想完全避免这种情况。因此,我想哈希图像的名称。
是否有javascript附带的哈希函数?我宁愿不写自己的,所以我应该考虑编写/获取md5哈希?是否有可以使用的内置内容?
答案 0 :(得分:1)
如果您想让字符串保持网络安全,请使用encodeURI或encodeURIComponent,然后根据需要使用decodeURI或decodeURIComponent进行解码。
e.g。
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
使用中的每个Web服务器和客户端都应具有本机支持。
答案 1 :(得分:0)
部首:
/*
* 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.
*/
答案 2 :(得分:0)
是否有理由需要在JavaScript中完成此操作。一旦文件上传,在服务器端计算这个可能会更好,然后在操作完成后将其返回给用户。
答案 3 :(得分:0)
好吧,如果你必须,你可以生成一个slu ::
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作为图像文件名。