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

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

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

חתימת מסמך PDF

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

    אני רוצה להבין את כל העניין של חתימה דיגיטלית מאובטחת. לא חתימה מאושרת שקונים מאחד הגופים כאן בארץ, אלא חתימה שאני יכול ליצור בעצמי.

    אשמח להבין:

    1. איך בדיוק נקראת החתימה הזאת?
    2. איך היא עובדת? האם ע"י מפתח ציבורי ומפתח פרטי כמו באינטרנט?
    3. איך אני יכול ליצור בעצמי כזאת חתימה. מה אני אמור לקבל? קבצים?
    4. אני מתאר לעצמי שאחרי שתהיה לי החתימה, אדע כבר לחתום. אבל אשמח להסבר מי שהתנסה בחתימה בסביבת NodeJS. בדגש על חתימת Buffer של PDF.

    תודה רבה.
    כל התשובות תתקבלנה בברכה.

    מנצפךמ yossizY dovidD 3 תגובות תגובה אחרונה
    0
    • מנצפךמ מנותק
      מנצפךמ מנותק
      מנצפך
      השיב למנצפך ב נערך לאחרונה על ידי
      #2

      אני מבין שההתחלה צריכה להיות דרך OpenSSL. זה נכון?
      מה צריך לעשות שם?

      תגובה 1 תגובה אחרונה
      1
      • מנצפךמ מנותק
        מנצפךמ מנותק
        מנצפך
        כתב ב נערך לאחרונה על ידי
        #3

        בינתיים התחלתי עם openSsl.
        רשמתי כזאת פקודה:

        sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout test-ssl/private.key -out test-ssl/public.crt
        

        הוא יצר לי שני קבצים.

        אני מבין שאני צריך לתחום עם ה private.key. נכון?

        עכשיו, אם אני מתקין את ה public.crt על המחשב שלי, הוא גם יוכל לבדוק את אמינות החתימה ביחס למי חתם אותה. נכון?

        yossizY תגובה 1 תגובה אחרונה
        0
        • מנצפךמ מנותק
          מנצפךמ מנותק
          מנצפך
          כתב ב נערך לאחרונה על ידי מנצפך
          #4

          שאלה נוספת.
          מה זה קובץ pem?
          וכן מה זה p12?
          כי ע"י openSsl יצרתי קובץ key.

          upsilon01U תגובה 1 תגובה אחרונה
          0
          • yossizY מחובר
            yossizY מחובר
            yossiz
            השיב למנצפך ב נערך לאחרונה על ידי
            #5

            @מנצפך אמר בחתימת מסמך PDF:

            אני מתאר לעצמי שאחרי שתהיה לי החתימה, אדע כבר לחתום

            למה נראה לך כך?
            כדי לחתום צריך ספריית node שמבינה פורמט PDF ויודעת לחתום PDF או להשתמש בתוכנת שורת הפקודה שיודעת לחתום PDF.

            חיפוש גוגל קצר מניב את התוצאות הבאות -
            http://wiki.cacert.org/PdfSigning
            https://www.npmjs.com/package/node-signpdf
            https://www.npmjs.com/package/node-pdfsigner
            https://nhs.io/pdf/#signing

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            מנצפךמ תגובה 1 תגובה אחרונה
            0
            • מנצפךמ מנותק
              מנצפךמ מנותק
              מנצפך
              השיב לyossiz ב נערך לאחרונה על ידי
              #6

              @yossiz כמובן שאני שאשתמש באחת הספריות שהבאת. כבר עמדתי לבדוק אחת מהן.
              עיקר שאלתי היא לגבי יצירת המפתח.

              תגובה 1 תגובה אחרונה
              1
              • yossizY מחובר
                yossizY מחובר
                yossiz
                השיב למנצפך ב נערך לאחרונה על ידי
                #7

                @מנצפך אמר בחתימת מסמך PDF:

                עכשיו, אם אני מתקין את ה public.crt על המחשב שלי, הוא גם יוכל לבדוק את אמינות החתימה ביחס למי חתם אותה. נכון?

                לכאורה אין ענין להתקין אותו. החלק ה-public מוטמע בPDF וקורא הPDF בודק מולו אם הPDF שונתה אחרי החתימה.

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                תגובה 1 תגובה אחרונה
                0
                • upsilon01U מנותק
                  upsilon01U מנותק
                  upsilon01
                  השיב למנצפך ב נערך לאחרונה על ידי
                  #8

                  @מנצפך

                  הסיומת key לא מייצג פורמט מסוים
                  pem לעומת זאת הוא פורמט(וסטנדרט)

                  מן הסתם הקובץ שיצרת הוא בפורמט pem

                  תגובה 1 תגובה אחרונה
                  1
                  • מנצפךמ מנותק
                    מנצפךמ מנותק
                    מנצפך
                    כתב ב נערך לאחרונה על ידי
                    #9

                    למעשה לא הצלחתי לחתום ב NodeJS.
                    מישהו הצליח?

                    upsilon01U תגובה 1 תגובה אחרונה
                    0
                    • upsilon01U מנותק
                      upsilon01U מנותק
                      upsilon01
                      השיב למנצפך ב נערך לאחרונה על ידי
                      #10

                      @מנצפך-0

                      לא ניסיתי, אבל זה נראה פשוט

                      התקנה:

                      npm i -S node-signpdf node-forge
                      

                      חתימה:

                      import signer from 'node-signpdf';
                       
                      const signedPdf = signer.sign(
                        fs.readFileSync(PATH_TO_PDF_FILE)
                        fs.readFileSync(PATH_TO_P12_CERTIFICATE),
                      );
                      

                      אימות:

                      import signer from 'node-signpdf';
                      ...
                       
                      const signedPdfBuffer = signer.sign(pdfBuffer, p12Buffer);
                      const {verified} = signer.verify(signedPdfBuffer);
                      
                      מנצפךמ תגובה 1 תגובה אחרונה
                      0
                      • מנצפךמ מנותק
                        מנצפךמ מנותק
                        מנצפך
                        השיב לupsilon01 ב נערך לאחרונה על ידי
                        #11

                        @upsilon01 זה ב TS?
                        צריך טיפה לשנות בשביל JS.

                        תגובה 1 תגובה אחרונה
                        0
                        • מנצפךמ מנותק
                          מנצפךמ מנותק
                          מנצפך
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @upsilon01 ניסיתי את החתימה.
                          נתן לי שגיאה.

                          תגובה 1 תגובה אחרונה
                          0
                          • מנצפךמ מנותק
                            מנצפךמ מנותק
                            מנצפך
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @upsilon01 הוא כותב לי

                            Error: Could not find ByteRange placeholder: /ByteRange [0 /********** /********** /**********]
                            
                            י תגובה 1 תגובה אחרונה
                            0
                            • מנצפךמ מנותק
                              מנצפךמ מנותק
                              מנצפך
                              כתב ב נערך לאחרונה על ידי מנצפך
                              #14

                              אגב, עשיתי את הקוד טיפה שונה שיתאים ל JS:

                              var signer = require('node-signpdf');
                              var fs = require('fs');
                              var PATH_TO_PDF_FILE = './sample.pdf';
                              var PATH_TO_P12_CERTIFICATE = './private.key';
                              
                              const signedPdf = signer.default.sign(
                                  fs.readFileSync(PATH_TO_PDF_FILE),
                                  fs.readFileSync(PATH_TO_P12_CERTIFICATE),
                              ); 
                              
                              תגובה 1 תגובה אחרונה
                              0
                              • א מנותק
                                א מנותק
                                אהרן
                                כתב ב נערך לאחרונה על ידי
                                #15
                                import signer from 'node-signpdf';
                                

                                עלול להיות שווה ל

                                var signer = require('node-signpdf').signer;
                                

                                בדוק מהו האוביקט המתקבל.

                                תגובה 1 תגובה אחרונה
                                1
                                • מנצפךמ מנותק
                                  מנצפךמ מנותק
                                  מנצפך
                                  כתב ב נערך לאחרונה על ידי
                                  #16

                                  @אהרן אמר בחתימת מסמך PDF:

                                  var signer = require('node-signpdf').signer;

                                  לא. זה undefined.

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • מנצפךמ מנותק
                                    מנצפךמ מנותק
                                    מנצפך
                                    כתב ב נערך לאחרונה על ידי
                                    #17

                                    בכל אופן נראה שהשגיאה כאן היא ביישום של החתימה ולא בהגדרת המודל.

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • י מנותק
                                      י מנותק
                                      יוסף בן שמעון
                                      השיב למנצפך ב נערך לאחרונה על ידי
                                      #18

                                      @מנצפך אמר בחתימת מסמך PDF:

                                      @upsilon01 הוא כותב לי

                                      Error: Could not find ByteRange placeholder: /ByteRange [0 /********** /********** /**********]
                                      

                                      לזכרוני אם לא מוסיפים ארגומנט שמגדיר את הקידוד, הוא קורא את הקובץ בלי שום קידוד וזה יכול להסביר את הודעת השגיאה, נסה כך:

                                      fs.readFileSync(PATH_TO_PDF_FILE, 'utf8')
                                      fs.readFileSync(PATH_TO_P12_CERTIFICATE, 'utf8'),

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • מנצפךמ מנותק
                                        מנצפךמ מנותק
                                        מנצפך
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        @יוסף-בן-שמעון ברגע שאני מוסיך uft8 הוא זורק לי שגיאה:

                                        Error: PDF expected as Buffer
                                        

                                        או

                                        Error: p12 certificate expected as Buffer.
                                        

                                        בהתאמה לשינוי שאני עושה.

                                        א תגובה 1 תגובה אחרונה
                                        0
                                        • א מנותק
                                          א מנותק
                                          אהרן
                                          השיב למנצפך ב נערך לאחרונה על ידי
                                          #20

                                          @מנצפך
                                          נסית לבחור בקידוד באפר?

                                          מנצפךמ תגובה 1 תגובה אחרונה
                                          0

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

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

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