javascript中的哈希函数
hash function in javascript
我允许用户上传图片到我的网站。有些图片的名字里有空格,我想完全避免这个。因此,我想对图像的名称进行散列。
有一个哈希函数,javascript自带?我宁愿不写自己的,所以我应该考虑写/获取md5哈希吗?有什么内置的东西我可以用吗?
如果您只是想使字符串web安全,请使用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
这需要在JavaScript中完成的原因吗?最好是在文件上传后在服务器端计算,然后在操作完成后将其返回给用户。
查看Paj的MD5实现
头:/*
* 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.
*/
好吧,如果你必须的话,你可以生成一个slug:
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作为图像文件名。
相关文章:
- 使用director.js执行基于哈希的函数
- 将哈希从URL传递到具有延迟的函数
- Emberjs :哈希中的函数原型
- coffeescript/backline.js:编写一个对字符串进行操作的哈希函数
- 文件的同步哈希函数
- Javascript 函数返回“[对象对象]”而不是哈希
- javascript/coffeescript 使用函数哈希作为参数
- 在 JavaScript 中生成 Amazon API 签名,导入哈希函数 (jQuery)
- 删除窗口哈希中的 # 以在函数中使用
- 如何使用 JavaScript 哈希作为函数中的参数
- 使点击函数返回不带哈希的 URL
- Javascript哈希器嵌套函数
- 字符串哈希函数,它将在JavaScript和PHP中产生相同的结果
- '这'当创建函数存储在哈希中的JS对象时,其作用域为窗口对象
- 使用指定的哈希函数解密哈希后的电子邮件地址
- 在带有Coffeescription的函数参数中使用哈希
- 简单的哈希函数,对HTML id友好,区分大小写
- 什么's是PHP哈希函数的Node.js等价项(包括salt和原始输出)
- mongodb中的加密哈希函数
- 返回静态函数的哈希值为空对象