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?
Forum Updated to NodeBB v4.3 + New Features

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.2k Views 2 Watching
  • 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.

    C Offline
    C Offline
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on 17 Jun 2021, 17:14 last edited by
    #5

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

    And it is on the heap since I don't know how to initialise it otherwise (method selection).

    I don't understand this? Why does

    QCryptographicHash hash(QCryptographicHash::Sha512);

    not work?

    So you say QByteArray::toBase64 should suffice?

    Yes

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    1 Reply Last reply
    2
    • 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

                        14/15

                        17 Jun 2021, 17:55

                        • Login

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