פונקציית גיבוב לאימות יחודיות של נתונים
-
אני צריך לבדוק על מערכים גדולים יחסית של נתונים (יכול להגיע לכמה מאות תווים) שלא עובר סטרינג יותר מפעם אחת,
כתבתי פונקציה לגיבוב (גוגל סקריפט), והיה נראה שזה עובד טוב, עד ששמתי לב בבדיקות שכששלחתי כמה מילים בנות 3 אותיות (בעברית) האש היה אותו הדבר... מה לא תקין אצלי?
כרגע זה עובד טוב על הסטרינגים הארוכים, אבל תמיד יכול להיות משהו קצר יותר/2 משפטים ששונים באות או שניים...
הפונקציות שכתבתי
function generateHash(text) { let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, text); let hexHash = rawHash.map(function (byte) { return ('0' + (byte & 0xFF).toString(16)).slice(-2); }).join(''); return hexHash; } function generateHashMD5(text) { let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text); Logger.log(rawHash) let hexHash = rawHash.map(function (byte) { return ('0' + (byte & 0xFF).toString(16)).slice(-2); }).join(''); return hexHash; }ניסיתי לקחת מכאן https://stackoverflow.com/questions/7994410/hash-of-a-cell-text-in-google-spreadsheet מה שנראה אותו רעיון כמו הפונקציות הקודמות, אבל טיפה שונה, ועדיין אותו הדבר.
function GetSHA1(input) { var rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_1, input); var txtHash = ''; for (j = 0; j <rawHash.length; j++) { var hashVal = rawHash[j]; if (hashVal < 0) hashVal += 256; if (hashVal.toString(16).length == 1) txtHash += "0"; txtHash += hashVal.toString(16); } return txtHash; } -
זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.
תנסה את זהfunction generateHash(text) { let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text, Utilities.Charset.UTF_8); return Utilities.base64EncodeWebSafe(rawHash); }עדיף MD5 כי הוא זול יותר לחישוב משמעותית, ואין לו חיסרון בתחומים שלא נוגעים לאבטחה.
-
זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.
תנסה את זהfunction generateHash(text) { let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text, Utilities.Charset.UTF_8); return Utilities.base64EncodeWebSafe(rawHash); }עדיף MD5 כי הוא זול יותר לחישוב משמעותית, ואין לו חיסרון בתחומים שלא נוגעים לאבטחה.
-
זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.
תנסה את זהfunction generateHash(text) { let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text, Utilities.Charset.UTF_8); return Utilities.base64EncodeWebSafe(rawHash); }עדיף MD5 כי הוא זול יותר לחישוב משמעותית, ואין לו חיסרון בתחומים שלא נוגעים לאבטחה.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות