דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. פונקציית גיבוב לאימות יחודיות של נתונים

פונקציית גיבוב לאימות יחודיות של נתונים

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 556 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבייא מנותק
    אבייא מנותק
    אביי
    כתב ב נערך לאחרונה על ידי
    #1

    אני צריך לבדוק על מערכים גדולים יחסית של נתונים (יכול להגיע לכמה מאות תווים) שלא עובר סטרינג יותר מפעם אחת,

    כתבתי פונקציה לגיבוב (גוגל סקריפט), והיה נראה שזה עובד טוב, עד ששמתי לב בבדיקות שכששלחתי כמה מילים בנות 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;
    }
    

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.
      תנסה את זה

      function generateHash(text) {
        let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text, Utilities.Charset.UTF_8);
        return Utilities.base64EncodeWebSafe(rawHash);
      }
      

      עדיף MD5 כי הוא זול יותר לחישוב משמעותית, ואין לו חיסרון בתחומים שלא נוגעים לאבטחה.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      אבייא 2 תגובות תגובה אחרונה
      4
      • אבייא מנותק
        אבייא מנותק
        אביי
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid כתב בפונקציית גיבוב לאימות יחודיות של נתונים:

        זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.

        הבנתי ככה מגוגל, וניסיתי משהו דומה למה שהבאת, כעת אני כבר לא מונח בסוגיה, אבדוק מחר בעז"ה ואעדכן.

        ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
        הלינקיה שלי https://abaye.co/link.html

        תגובה 1 תגובה אחרונה
        0
        • אבייא מנותק
          אבייא מנותק
          אביי
          השיב לdovid ב נערך לאחרונה על ידי
          #4

          @dovid כתב בפונקציית גיבוב לאימות יחודיות של נתונים:

          תנסה את זה

          זה אכן עזר, תודה.

          ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
          הלינקיה שלי https://abaye.co/link.html

          תגובה 1 תגובה אחרונה
          1

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום