• Isadora
  • Get it
  • Forum
  • Help
  • ADD-ONS
  • Newsletter
  • Impressum
  • Dsgvo
  • Impressum
Forum
    • Categories
    • Recent
    • Popular
    • Tags
    • Register
    • Login

    Javascript / Base64 encoding

    How To... ?
    2
    3
    1.1k
    Loading More Posts
    • 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.
    • MarciM
      Marci
      last edited by

      Afternoon folks. I have a patch with a few TCP actors that need to send http headers, and part of the header is auth:basic.

      I can grab the username and password via User Input actors / Text Input controls, and can concatenate it into username:password, but it then needs base64 encoding.
      I'm using trigger text actor which is firing fred:west in as input1 to the javascript actor.
      It's outputting -,+(0( for everything, so I'm assuming something is tripping it up - . How does one log to the javascript monitor?
      The Javascript is running thus:

      function main()

      {

      //  discuss at: http://phpjs.org/functions/base64_encode/

      // original by: Tyler Akins (http://rumkin.com)

      // improved by: Bayron Guevara

      // improved by: Thunder.m

      // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

      // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

      // improved by: Rafa∏ Kukawski (http://kukawski.pl)

      // bugfixed by: Pellentesque Malesuada

      //   example 1: base64_encode('Kevin van Zonneveld');

      //   returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='

      //   example 2: base64_encode('a');

      //   returns 2: 'YQ=='

      var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';

      var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,

      ac = 0,

      enc = '',

      tmp_arr = [];

      var data = arguments[0];

      if (!data) {

      return data;

      }

      do { // pack three octets into four hexets

      o1 = data.charCodeAt(i++);

      o2 = data.charCodeAt(i++);

      o3 = data.charCodeAt(i++);

      bits = o1 << 16 | o2 << 8 | o3;

      h1 = bits >> 18 & 0x3f;

      h2 = bits >> 12 & 0x3f;

      h3 = bits >> 6 & 0x3f;

      h4 = bits & 0x3f;

      // use hexets to index into b64, and append result to encoded string

      tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);

      } while (i < data.length);

      enc = tmp_arr.join('');

      var r = data.length % 3;

      return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);

      }

      rMBP 11,3 (mOS 10.13) / rMBP 11,4 (mOS 10.14) / 3x Kinect + Leap / TH2Go
      Warning: autistic - may come across rather blunt and lacking in humour!

      1 Reply Last reply Reply Quote 0
      • MarciM
        Marci
        last edited by

        Nevermind... needed to plug the output to a text type actor to set the mutable type for the JS actor. Sorted!

        rMBP 11,3 (mOS 10.13) / rMBP 11,4 (mOS 10.14) / 3x Kinect + Leap / TH2Go
        Warning: autistic - may come across rather blunt and lacking in humour!

        1 Reply Last reply Reply Quote 0
        • DusXD
          DusX Tech Staff
          last edited by

          glad you got it.

          Troikatronix Technical Support

          • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
          • Isadora Add-ons: https://troikatronix.com/add-ons/
          • My Add-ons: https://troikatronix.com/add-ons/?u=dusx

          Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post