Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Is there a way to make output from QCryptographicHash readable QByteArray?

Is there a way to make output from QCryptographicHash readable QByteArray?

Scheduled Pinned Locked Moved Solved General and Desktop
qbytearray
15 Posts 4 Posters 1.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A artwaw
    17 Jun 2021, 17:06

    @Christian-Ehrlicher my bad but this is inly excerpt. In the program it is a member and is deleted in the destructor.
    And it is on the heap since I don't know how to initialise it otherwise (method selection). One of the constrains I face is that it has to be SHA-512 and only that.

    So you say QByteArray::toBase64 should suffice?

    @mrjj I examined and tested the code from which excerpts are here, worked over 100 times both in loop with no wait and waiting for user input.

    J Offline
    J Offline
    JonB
    wrote on 17 Jun 2021, 17:28 last edited by
    #6
    This post is deleted!
    1 Reply Last reply
    0
    • A Offline
      A Offline
      artwaw
      wrote on 17 Jun 2021, 17:32 last edited by artwaw
      #7

      IT WORKS!
      Thank you!

      @Christian-Ehrlicher That works, of course. But outside of the example it looks like this:
      I wrapped all those hash-generating bits into a small class. For convenience, I have there:

      private:
          QRandomGenerator generator;
          QCryptographicHash *hash;
      

      In the constructor I init the generator and the hash. So I have hash = new QCryptographicHash(QCryptographicHash::Sha512); that is later deleted in the destructor. It apparently is a weak day for me but I failed to find a way of this private member NOT to be on the heap.

      EDIT:
      @JonB I saw your comment :)
      I understood, just at this hour I am not entirely online, just from time to time :)

      For more information please re-read.

      Kind Regards,
      Artur

      J 1 Reply Last reply 17 Jun 2021, 17:37
      1
      • A artwaw
        17 Jun 2021, 17:32

        IT WORKS!
        Thank you!

        @Christian-Ehrlicher That works, of course. But outside of the example it looks like this:
        I wrapped all those hash-generating bits into a small class. For convenience, I have there:

        private:
            QRandomGenerator generator;
            QCryptographicHash *hash;
        

        In the constructor I init the generator and the hash. So I have hash = new QCryptographicHash(QCryptographicHash::Sha512); that is later deleted in the destructor. It apparently is a weak day for me but I failed to find a way of this private member NOT to be on the heap.

        EDIT:
        @JonB I saw your comment :)
        I understood, just at this hour I am not entirely online, just from time to time :)

        J Offline
        J Offline
        JonB
        wrote on 17 Jun 2021, 17:37 last edited by JonB
        #8

        @artwaw
        Personally I don't worry about heap vs stack as some others do, when I did Python it's all heap anyway. And sometimes I heap to avoid include dependencies in header files.

        But why can't you have QCryptographicHash hash(QCryptographicHash::Sha512); as the member variable instead of pointer?

        A 1 Reply Last reply 17 Jun 2021, 17:42
        0
        • J JonB
          17 Jun 2021, 17:37

          @artwaw
          Personally I don't worry about heap vs stack as some others do, when I did Python it's all heap anyway. And sometimes I heap to avoid include dependencies in header files.

          But why can't you have QCryptographicHash hash(QCryptographicHash::Sha512); as the member variable instead of pointer?

          A Offline
          A Offline
          artwaw
          wrote on 17 Jun 2021, 17:42 last edited by
          #9

          @JonB When I do:

          private:
              QCryptographicHash hash(QCryptographicHash::Sha512);
          

          I get instant /Users/(username)/cpp/512hash/cryptoclass/cryptoclass.h:24: error: no type named 'Sha512' in 'QCryptographicHash'

          For more information please re-read.

          Kind Regards,
          Artur

          J 2 Replies Last reply 17 Jun 2021, 17:49
          0
          • A artwaw
            17 Jun 2021, 17:42

            @JonB When I do:

            private:
                QCryptographicHash hash(QCryptographicHash::Sha512);
            

            I get instant /Users/(username)/cpp/512hash/cryptoclass/cryptoclass.h:24: error: no type named 'Sha512' in 'QCryptographicHash'

            J Offline
            J Offline
            JonB
            wrote on 17 Jun 2021, 17:49 last edited by JonB
            #10

            @artwaw
            Ah! That will be because you are in the "sometimes I heap to avoid include dependencies in header files" I mentioned :)

            Intentionally or not, in your .h file you have preceded this line with

            class QCryptographicHash;
            

            That allows QCryptographicHash * declarations to the incomplete type.

            You will need

            #include <QCryptographicHash>
            

            to make the declaration acceptable. If that is what you wish to do.

            I see for example you alreday have

            QRandomGenerator generator;
            

            so you have chosen to do that one with include.

            A 1 Reply Last reply 17 Jun 2021, 17:51
            0
            • J JonB
              17 Jun 2021, 17:49

              @artwaw
              Ah! That will be because you are in the "sometimes I heap to avoid include dependencies in header files" I mentioned :)

              Intentionally or not, in your .h file you have preceded this line with

              class QCryptographicHash;
              

              That allows QCryptographicHash * declarations to the incomplete type.

              You will need

              #include <QCryptographicHash>
              

              to make the declaration acceptable. If that is what you wish to do.

              I see for example you alreday have

              QRandomGenerator generator;
              

              so you have chosen to do that one with include.

              A Offline
              A Offline
              artwaw
              wrote on 17 Jun 2021, 17:51 last edited by
              #11

              @JonB Believe me or not but I do have it.
              0d4539e8-71d3-4683-8004-459706d7945c-image.png

              For more information please re-read.

              Kind Regards,
              Artur

              J 1 Reply Last reply 17 Jun 2021, 17:51
              0
              • A artwaw
                17 Jun 2021, 17:51

                @JonB Believe me or not but I do have it.
                0d4539e8-71d3-4683-8004-459706d7945c-image.png

                J Offline
                J Offline
                JonB
                wrote on 17 Jun 2021, 17:51 last edited by
                #12

                @artwaw
                And that's in the .h file, not just in the .cpp?

                A 1 Reply Last reply 17 Jun 2021, 17:52
                0
                • J JonB
                  17 Jun 2021, 17:51

                  @artwaw
                  And that's in the .h file, not just in the .cpp?

                  A Offline
                  A Offline
                  artwaw
                  wrote on 17 Jun 2021, 17:52 last edited by
                  #13

                  @JonB Yes. I tend to do all includes in the header.

                  For more information please re-read.

                  Kind Regards,
                  Artur

                  1 Reply Last reply
                  0
                  • A artwaw
                    17 Jun 2021, 17:42

                    @JonB When I do:

                    private:
                        QCryptographicHash hash(QCryptographicHash::Sha512);
                    

                    I get instant /Users/(username)/cpp/512hash/cryptoclass/cryptoclass.h:24: error: no type named 'Sha512' in 'QCryptographicHash'

                    J Offline
                    J Offline
                    JonB
                    wrote on 17 Jun 2021, 17:55 last edited by
                    #14

                    @artwaw said in Is there a way to make output from QCryptographicHash readable QByteArray?:

                    I get instant /Users/(username)/cpp/512hash/cryptoclass/cryptoclass.h:24: error: no type named 'Sha512' in 'QCryptographicHash'

                    Then I have no idea why you get a "no type" error for

                    QCryptographicHash hash(QCryptographicHash::Sha512);
                    

                    in a .h but not in a .cpp or why

                    hash = new QCryptographicHash(QCryptographicHash::Sha512);
                    

                    is acceptable.

                    A 1 Reply Last reply 17 Jun 2021, 17:57
                    1
                    • J JonB
                      17 Jun 2021, 17:55

                      @artwaw said in Is there a way to make output from QCryptographicHash readable QByteArray?:

                      I get instant /Users/(username)/cpp/512hash/cryptoclass/cryptoclass.h:24: error: no type named 'Sha512' in 'QCryptographicHash'

                      Then I have no idea why you get a "no type" error for

                      QCryptographicHash hash(QCryptographicHash::Sha512);
                      

                      in a .h but not in a .cpp or why

                      hash = new QCryptographicHash(QCryptographicHash::Sha512);
                      

                      is acceptable.

                      A Offline
                      A Offline
                      artwaw
                      wrote on 17 Jun 2021, 17:57 last edited by artwaw
                      #15

                      @JonB I can live with one pair of new/delete :)

                      Thank you all who contributed and especially to @Christian-Ehrlicher for pointing me out the obvious.

                      For more information please re-read.

                      Kind Regards,
                      Artur

                      1 Reply Last reply
                      1

                      15/15

                      17 Jun 2021, 17:57

                      • Login

                      • Login or register to search.
                      15 out of 15
                      • First post
                        15/15
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved