2011-08-23 4 views
0

사용자가 내 웹 사이트에 이미지를 업로드 할 수 있도록 허용합니다. 이러한 이미지 중 일부는 이름과 내용에 공백이 있으므로이 모든 것을 피하고 싶습니다. 따라서 이미지의 이름을 해싱하고 싶습니다.자바 스크립트의 해시 함수

자바 스크립트와 함께 제공되는 해시 함수가 있습니까? 차라리 내 자신을 쓰지 않으려 고합니다. 따라서 md5 해시를 작성/작성해야합니까? 대신 사용할 수있는 기본 제공 항목이 있습니까?

답변

1

당신이 문자열이 웹 안전하게 encodeURI 또는 encodeURIComponent을 사용하고 decodeURI 또는 decodeURIComponent 적절한를 사용하여 디코딩 할 simlpy합니다.

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

MD5 Implementation by 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. 
*/ 
0

이 자바 스크립트에서 수행해야하는 이유가입니다. 일단 파일이 업로드되면 서버 측에서 이것을 계산 한 다음 작업이 완료되면 다시 사용자에게 제공하는 것이 좋습니다.

0

글쎄, 당신은 당신이 슬러그 생성 할 수 있습니다해야하는 경우 :

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

이 기능은 완벽하지 않습니다. – Dementic