473,387 Members | 1,693 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Need Help with AES ECB Encryption in VBA

Hello there. I am new to VBA and AES encryption, and I came upon this thread:
https://bytes.com/topic/access/insig...m-vba-vbscript

I decided to modifiy zmbd's post to read and write to/from an Excel spreadsheet, instead of from a file, with the input in Column A and the output in Column B.

Here is my code, modified from zmbd's code:

Expand|Select|Wrap|Line Numbers
  1.  Option Explicit
  2.  
  3.  
  4.  Sub AES_ECB(sPassIn)
  5.  ''
  6.  ''Based on code by Rabbit
  7.  'http://bytes.com/topic/access/insights/906850-aes-encryption-algorithm-vba-vbscript
  8.  '
  9.  '<<Mod added the sPassin parameter>>
  10.  '<<Mod added () at the end of the following array variables>>
  11.      Dim sbox(), sboxinv(), rcon()
  12.      Dim g2(), g3(), g9(), g11(), g13(), g14()
  13.  
  14.      g2 = Array( _
  15.          &H0, &H2, &H4, &H6, &H8, &HA, &HC, &HE, &H10, &H12, &H14, &H16, &H18, &H1A, &H1C, &H1E, _
  16.          &H20, &H22, &H24, &H26, &H28, &H2A, &H2C, &H2E, &H30, &H32, &H34, &H36, &H38, &H3A, &H3C, &H3E, _
  17.          &H40, &H42, &H44, &H46, &H48, &H4A, &H4C, &H4E, &H50, &H52, &H54, &H56, &H58, &H5A, &H5C, &H5E, _
  18.          &H60, &H62, &H64, &H66, &H68, &H6A, &H6C, &H6E, &H70, &H72, &H74, &H76, &H78, &H7A, &H7C, &H7E, _
  19.          &H80, &H82, &H84, &H86, &H88, &H8A, &H8C, &H8E, &H90, &H92, &H94, &H96, &H98, &H9A, &H9C, &H9E, _
  20.          &HA0, &HA2, &HA4, &HA6, &HA8, &HAA, &HAC, &HAE, &HB0, &HB2, &HB4, &HB6, &HB8, &HBA, &HBC, &HBE, _
  21.          &HC0, &HC2, &HC4, &HC6, &HC8, &HCA, &HCC, &HCE, &HD0, &HD2, &HD4, &HD6, &HD8, &HDA, &HDC, &HDE, _
  22.          &HE0, &HE2, &HE4, &HE6, &HE8, &HEA, &HEC, &HEE, &HF0, &HF2, &HF4, &HF6, &HF8, &HFA, &HFC, &HFE, _
  23.          &H1B, &H19, &H1F, &H1D, &H13, &H11, &H17, &H15, &HB, &H9, &HF, &HD, &H3, &H1, &H7, &H5, _
  24.          &H3B, &H39, &H3F, &H3D, &H33, &H31, &H37, &H35, &H2B, &H29, &H2F, &H2D, &H23, &H21, &H27, &H25, _
  25.          &H5B, &H59, &H5F, &H5D, &H53, &H51, &H57, &H55, &H4B, &H49, &H4F, &H4D, &H43, &H41, &H47, &H45, _
  26.          &H7B, &H79, &H7F, &H7D, &H73, &H71, &H77, &H75, &H6B, &H69, &H6F, &H6D, &H63, &H61, &H67, &H65, _
  27.          &H9B, &H99, &H9F, &H9D, &H93, &H91, &H97, &H95, &H8B, &H89, &H8F, &H8D, &H83, &H81, &H87, &H85, _
  28.          &HBB, &HB9, &HBF, &HBD, &HB3, &HB1, &HB7, &HB5, &HAB, &HA9, &HAF, &HAD, &HA3, &HA1, &HA7, &HA5, _
  29.          &HDB, &HD9, &HDF, &HDD, &HD3, &HD1, &HD7, &HD5, &HCB, &HC9, &HCF, &HCD, &HC3, &HC1, &HC7, &HC5, _
  30.          &HFB, &HF9, &HFF, &HFD, &HF3, &HF1, &HF7, &HF5, &HEB, &HE9, &HEF, &HED, &HE3, &HE1, &HE7, &HE5)
  31.  
  32.      g3 = Array( _
  33.          &H0, &H3, &H6, &H5, &HC, &HF, &HA, &H9, &H18, &H1B, &H1E, &H1D, &H14, &H17, &H12, &H11, _
  34.          &H30, &H33, &H36, &H35, &H3C, &H3F, &H3A, &H39, &H28, &H2B, &H2E, &H2D, &H24, &H27, &H22, &H21, _
  35.          &H60, &H63, &H66, &H65, &H6C, &H6F, &H6A, &H69, &H78, &H7B, &H7E, &H7D, &H74, &H77, &H72, &H71, _
  36.          &H50, &H53, &H56, &H55, &H5C, &H5F, &H5A, &H59, &H48, &H4B, &H4E, &H4D, &H44, &H47, &H42, &H41, _
  37.          &HC0, &HC3, &HC6, &HC5, &HCC, &HCF, &HCA, &HC9, &HD8, &HDB, &HDE, &HDD, &HD4, &HD7, &HD2, &HD1, _
  38.          &HF0, &HF3, &HF6, &HF5, &HFC, &HFF, &HFA, &HF9, &HE8, &HEB, &HEE, &HED, &HE4, &HE7, &HE2, &HE1, _
  39.          &HA0, &HA3, &HA6, &HA5, &HAC, &HAF, &HAA, &HA9, &HB8, &HBB, &HBE, &HBD, &HB4, &HB7, &HB2, &HB1, _
  40.          &H90, &H93, &H96, &H95, &H9C, &H9F, &H9A, &H99, &H88, &H8B, &H8E, &H8D, &H84, &H87, &H82, &H81, _
  41.          &H9B, &H98, &H9D, &H9E, &H97, &H94, &H91, &H92, &H83, &H80, &H85, &H86, &H8F, &H8C, &H89, &H8A, _
  42.          &HAB, &HA8, &HAD, &HAE, &HA7, &HA4, &HA1, &HA2, &HB3, &HB0, &HB5, &HB6, &HBF, &HBC, &HB9, &HBA, _
  43.          &HFB, &HF8, &HFD, &HFE, &HF7, &HF4, &HF1, &HF2, &HE3, &HE0, &HE5, &HE6, &HEF, &HEC, &HE9, &HEA, _
  44.          &HCB, &HC8, &HCD, &HCE, &HC7, &HC4, &HC1, &HC2, &HD3, &HD0, &HD5, &HD6, &HDF, &HDC, &HD9, &HDA, _
  45.          &H5B, &H58, &H5D, &H5E, &H57, &H54, &H51, &H52, &H43, &H40, &H45, &H46, &H4F, &H4C, &H49, &H4A, _
  46.          &H6B, &H68, &H6D, &H6E, &H67, &H64, &H61, &H62, &H73, &H70, &H75, &H76, &H7F, &H7C, &H79, &H7A, _
  47.          &H3B, &H38, &H3D, &H3E, &H37, &H34, &H31, &H32, &H23, &H20, &H25, &H26, &H2F, &H2C, &H29, &H2A, _
  48.          &HB, &H8, &HD, &HE, &H7, &H4, &H1, &H2, &H13, &H10, &H15, &H16, &H1F, &H1C, &H19, &H1A)
  49.  
  50.      g9 = Array( _
  51.          &H0, &H9, &H12, &H1B, &H24, &H2D, &H36, &H3F, &H48, &H41, &H5A, &H53, &H6C, &H65, &H7E, &H77, _
  52.          &H90, &H99, &H82, &H8B, &HB4, &HBD, &HA6, &HAF, &HD8, &HD1, &HCA, &HC3, &HFC, &HF5, &HEE, &HE7, _
  53.          &H3B, &H32, &H29, &H20, &H1F, &H16, &HD, &H4, &H73, &H7A, &H61, &H68, &H57, &H5E, &H45, &H4C, _
  54.          &HAB, &HA2, &HB9, &HB0, &H8F, &H86, &H9D, &H94, &HE3, &HEA, &HF1, &HF8, &HC7, &HCE, &HD5, &HDC, _
  55.          &H76, &H7F, &H64, &H6D, &H52, &H5B, &H40, &H49, &H3E, &H37, &H2C, &H25, &H1A, &H13, &H8, &H1, _
  56.          &HE6, &HEF, &HF4, &HFD, &HC2, &HCB, &HD0, &HD9, &HAE, &HA7, &HBC, &HB5, &H8A, &H83, &H98, &H91, _
  57.          &H4D, &H44, &H5F, &H56, &H69, &H60, &H7B, &H72, &H5, &HC, &H17, &H1E, &H21, &H28, &H33, &H3A, _
  58.          &HDD, &HD4, &HCF, &HC6, &HF9, &HF0, &HEB, &HE2, &H95, &H9C, &H87, &H8E, &HB1, &HB8, &HA3, &HAA, _
  59.          &HEC, &HE5, &HFE, &HF7, &HC8, &HC1, &HDA, &HD3, &HA4, &HAD, &HB6, &HBF, &H80, &H89, &H92, &H9B, _
  60.          &H7C, &H75, &H6E, &H67, &H58, &H51, &H4A, &H43, &H34, &H3D, &H26, &H2F, &H10, &H19, &H2, &HB, _
  61.          &HD7, &HDE, &HC5, &HCC, &HF3, &HFA, &HE1, &HE8, &H9F, &H96, &H8D, &H84, &HBB, &HB2, &HA9, &HA0, _
  62.          &H47, &H4E, &H55, &H5C, &H63, &H6A, &H71, &H78, &HF, &H6, &H1D, &H14, &H2B, &H22, &H39, &H30, _
  63.          &H9A, &H93, &H88, &H81, &HBE, &HB7, &HAC, &HA5, &HD2, &HDB, &HC0, &HC9, &HF6, &HFF, &HE4, &HED, _
  64.          &HA, &H3, &H18, &H11, &H2E, &H27, &H3C, &H35, &H42, &H4B, &H50, &H59, &H66, &H6F, &H74, &H7D, _
  65.          &HA1, &HA8, &HB3, &HBA, &H85, &H8C, &H97, &H9E, &HE9, &HE0, &HFB, &HF2, &HCD, &HC4, &HDF, &HD6, _
  66.          &H31, &H38, &H23, &H2A, &H15, &H1C, &H7, &HE, &H79, &H70, &H6B, &H62, &H5D, &H54, &H4F, &H46)
  67.  
  68.      g11 = Array( _
  69.          &H0, &HB, &H16, &H1D, &H2C, &H27, &H3A, &H31, &H58, &H53, &H4E, &H45, &H74, &H7F, &H62, &H69, _
  70.          &HB0, &HBB, &HA6, &HAD, &H9C, &H97, &H8A, &H81, &HE8, &HE3, &HFE, &HF5, &HC4, &HCF, &HD2, &HD9, _
  71.          &H7B, &H70, &H6D, &H66, &H57, &H5C, &H41, &H4A, &H23, &H28, &H35, &H3E, &HF, &H4, &H19, &H12, _
  72.          &HCB, &HC0, &HDD, &HD6, &HE7, &HEC, &HF1, &HFA, &H93, &H98, &H85, &H8E, &HBF, &HB4, &HA9, &HA2, _
  73.          &HF6, &HFD, &HE0, &HEB, &HDA, &HD1, &HCC, &HC7, &HAE, &HA5, &HB8, &HB3, &H82, &H89, &H94, &H9F, _
  74.          &H46, &H4D, &H50, &H5B, &H6A, &H61, &H7C, &H77, &H1E, &H15, &H8, &H3, &H32, &H39, &H24, &H2F, _
  75.          &H8D, &H86, &H9B, &H90, &HA1, &HAA, &HB7, &HBC, &HD5, &HDE, &HC3, &HC8, &HF9, &HF2, &HEF, &HE4, _
  76.          &H3D, &H36, &H2B, &H20, &H11, &H1A, &H7, &HC, &H65, &H6E, &H73, &H78, &H49, &H42, &H5F, &H54, _
  77.          &HF7, &HFC, &HE1, &HEA, &HDB, &HD0, &HCD, &HC6, &HAF, &HA4, &HB9, &HB2, &H83, &H88, &H95, &H9E, _
  78.          &H47, &H4C, &H51, &H5A, &H6B, &H60, &H7D, &H76, &H1F, &H14, &H9, &H2, &H33, &H38, &H25, &H2E, _
  79.          &H8C, &H87, &H9A, &H91, &HA0, &HAB, &HB6, &HBD, &HD4, &HDF, &HC2, &HC9, &HF8, &HF3, &HEE, &HE5, _
  80.          &H3C, &H37, &H2A, &H21, &H10, &H1B, &H6, &HD, &H64, &H6F, &H72, &H79, &H48, &H43, &H5E, &H55, _
  81.          &H1, &HA, &H17, &H1C, &H2D, &H26, &H3B, &H30, &H59, &H52, &H4F, &H44, &H75, &H7E, &H63, &H68, _
  82.          &HB1, &HBA, &HA7, &HAC, &H9D, &H96, &H8B, &H80, &HE9, &HE2, &HFF, &HF4, &HC5, &HCE, &HD3, &HD8, _
  83.          &H7A, &H71, &H6C, &H67, &H56, &H5D, &H40, &H4B, &H22, &H29, &H34, &H3F, &HE, &H5, &H18, &H13, _
  84.          &HCA, &HC1, &HDC, &HD7, &HE6, &HED, &HF0, &HFB, &H92, &H99, &H84, &H8F, &HBE, &HB5, &HA8, &HA3)
  85.  
  86.      g13 = Array( _
  87.          &H0, &HD, &H1A, &H17, &H34, &H39, &H2E, &H23, &H68, &H65, &H72, &H7F, &H5C, &H51, &H46, &H4B, _
  88.          &HD0, &HDD, &HCA, &HC7, &HE4, &HE9, &HFE, &HF3, &HB8, &HB5, &HA2, &HAF, &H8C, &H81, &H96, &H9B, _
  89.          &HBB, &HB6, &HA1, &HAC, &H8F, &H82, &H95, &H98, &HD3, &HDE, &HC9, &HC4, &HE7, &HEA, &HFD, &HF0, _
  90.          &H6B, &H66, &H71, &H7C, &H5F, &H52, &H45, &H48, &H3, &HE, &H19, &H14, &H37, &H3A, &H2D, &H20, _
  91.          &H6D, &H60, &H77, &H7A, &H59, &H54, &H43, &H4E, &H5, &H8, &H1F, &H12, &H31, &H3C, &H2B, &H26, _
  92.          &HBD, &HB0, &HA7, &HAA, &H89, &H84, &H93, &H9E, &HD5, &HD8, &HCF, &HC2, &HE1, &HEC, &HFB, &HF6, _
  93.          &HD6, &HDB, &HCC, &HC1, &HE2, &HEF, &HF8, &HF5, &HBE, &HB3, &HA4, &HA9, &H8A, &H87, &H90, &H9D, _
  94.          &H6, &HB, &H1C, &H11, &H32, &H3F, &H28, &H25, &H6E, &H63, &H74, &H79, &H5A, &H57, &H40, &H4D, _
  95.          &HDA, &HD7, &HC0, &HCD, &HEE, &HE3, &HF4, &HF9, &HB2, &HBF, &HA8, &HA5, &H86, &H8B, &H9C, &H91, _
  96.          &HA, &H7, &H10, &H1D, &H3E, &H33, &H24, &H29, &H62, &H6F, &H78, &H75, &H56, &H5B, &H4C, &H41, _
  97.          &H61, &H6C, &H7B, &H76, &H55, &H58, &H4F, &H42, &H9, &H4, &H13, &H1E, &H3D, &H30, &H27, &H2A, _
  98.          &HB1, &HBC, &HAB, &HA6, &H85, &H88, &H9F, &H92, &HD9, &HD4, &HC3, &HCE, &HED, &HE0, &HF7, &HFA, _
  99.          &HB7, &HBA, &HAD, &HA0, &H83, &H8E, &H99, &H94, &HDF, &HD2, &HC5, &HC8, &HEB, &HE6, &HF1, &HFC, _
  100.          &H67, &H6A, &H7D, &H70, &H53, &H5E, &H49, &H44, &HF, &H2, &H15, &H18, &H3B, &H36, &H21, &H2C, _
  101.          &HC, &H1, &H16, &H1B, &H38, &H35, &H22, &H2F, &H64, &H69, &H7E, &H73, &H50, &H5D, &H4A, &H47, _
  102.          &HDC, &HD1, &HC6, &HCB, &HE8, &HE5, &HF2, &HFF, &HB4, &HB9, &HAE, &HA3, &H80, &H8D, &H9A, &H97)
  103.  
  104.      g14 = Array( _
  105.          &H0, &HE, &H1C, &H12, &H38, &H36, &H24, &H2A, &H70, &H7E, &H6C, &H62, &H48, &H46, &H54, &H5A, _
  106.          &HE0, &HEE, &HFC, &HF2, &HD8, &HD6, &HC4, &HCA, &H90, &H9E, &H8C, &H82, &HA8, &HA6, &HB4, &HBA, _
  107.          &HDB, &HD5, &HC7, &HC9, &HE3, &HED, &HFF, &HF1, &HAB, &HA5, &HB7, &HB9, &H93, &H9D, &H8F, &H81, _
  108.          &H3B, &H35, &H27, &H29, &H3, &HD, &H1F, &H11, &H4B, &H45, &H57, &H59, &H73, &H7D, &H6F, &H61, _
  109.          &HAD, &HA3, &HB1, &HBF, &H95, &H9B, &H89, &H87, &HDD, &HD3, &HC1, &HCF, &HE5, &HEB, &HF9, &HF7, _
  110.          &H4D, &H43, &H51, &H5F, &H75, &H7B, &H69, &H67, &H3D, &H33, &H21, &H2F, &H5, &HB, &H19, &H17, _
  111.          &H76, &H78, &H6A, &H64, &H4E, &H40, &H52, &H5C, &H6, &H8, &H1A, &H14, &H3E, &H30, &H22, &H2C, _
  112.          &H96, &H98, &H8A, &H84, &HAE, &HA0, &HB2, &HBC, &HE6, &HE8, &HFA, &HF4, &HDE, &HD0, &HC2, &HCC, _
  113.          &H41, &H4F, &H5D, &H53, &H79, &H77, &H65, &H6B, &H31, &H3F, &H2D, &H23, &H9, &H7, &H15, &H1B, _
  114.          &HA1, &HAF, &HBD, &HB3, &H99, &H97, &H85, &H8B, &HD1, &HDF, &HCD, &HC3, &HE9, &HE7, &HF5, &HFB, _
  115.          &H9A, &H94, &H86, &H88, &HA2, &HAC, &HBE, &HB0, &HEA, &HE4, &HF6, &HF8, &HD2, &HDC, &HCE, &HC0, _
  116.          &H7A, &H74, &H66, &H68, &H42, &H4C, &H5E, &H50, &HA, &H4, &H16, &H18, &H32, &H3C, &H2E, &H20, _
  117.          &HEC, &HE2, &HF0, &HFE, &HD4, &HDA, &HC8, &HC6, &H9C, &H92, &H80, &H8E, &HA4, &HAA, &HB8, &HB6, _
  118.          &HC, &H2, &H10, &H1E, &H34, &H3A, &H28, &H26, &H7C, &H72, &H60, &H6E, &H44, &H4A, &H58, &H56, _
  119.          &H37, &H39, &H2B, &H25, &HF, &H1, &H13, &H1D, &H47, &H49, &H5B, &H55, &H7F, &H71, &H63, &H6D, _
  120.          &HD7, &HD9, &HCB, &HC5, &HEF, &HE1, &HF3, &HFD, &HA7, &HA9, &HBB, &HB5, &H9F, &H91, &H83, &H8D)
  121.  
  122.     sbox = Array(&H63, &H7C, &H77, &H7B, &HF2, &H6B, &H6F, &HC5, &H30, &H1, &H67, &H2B, &HFE, &HD7, &HAB, &H76, _
  123.          &HCA, &H82, &HC9, &H7D, &HFA, &H59, &H47, &HF0, &HAD, &HD4, &HA2, &HAF, &H9C, &HA4, &H72, &HC0, _
  124.          &HB7, &HFD, &H93, &H26, &H36, &H3F, &HF7, &HCC, &H34, &HA5, &HE5, &HF1, &H71, &HD8, &H31, &H15, _
  125.          &H4, &HC7, &H23, &HC3, &H18, &H96, &H5, &H9A, &H7, &H12, &H80, &HE2, &HEB, &H27, &HB2, &H75, _
  126.          &H9, &H83, &H2C, &H1A, &H1B, &H6E, &H5A, &HA0, &H52, &H3B, &HD6, &HB3, &H29, &HE3, &H2F, &H84, _
  127.          &H53, &HD1, &H0, &HED, &H20, &HFC, &HB1, &H5B, &H6A, &HCB, &HBE, &H39, &H4A, &H4C, &H58, &HCF, _
  128.          &HD0, &HEF, &HAA, &HFB, &H43, &H4D, &H33, &H85, &H45, &HF9, &H2, &H7F, &H50, &H3C, &H9F, &HA8, _
  129.          &H51, &HA3, &H40, &H8F, &H92, &H9D, &H38, &HF5, &HBC, &HB6, &HDA, &H21, &H10, &HFF, &HF3, &HD2, _
  130.          &HCD, &HC, &H13, &HEC, &H5F, &H97, &H44, &H17, &HC4, &HA7, &H7E, &H3D, &H64, &H5D, &H19, &H73, _
  131.          &H60, &H81, &H4F, &HDC, &H22, &H2A, &H90, &H88, &H46, &HEE, &HB8, &H14, &HDE, &H5E, &HB, &HDB, _
  132.          &HE0, &H32, &H3A, &HA, &H49, &H6, &H24, &H5C, &HC2, &HD3, &HAC, &H62, &H91, &H95, &HE4, &H79, _
  133.          &HE7, &HC8, &H37, &H6D, &H8D, &HD5, &H4E, &HA9, &H6C, &H56, &HF4, &HEA, &H65, &H7A, &HAE, &H8, _
  134.          &HBA, &H78, &H25, &H2E, &H1C, &HA6, &HB4, &HC6, &HE8, &HDD, &H74, &H1F, &H4B, &HBD, &H8B, &H8A, _
  135.          &H70, &H3E, &HB5, &H66, &H48, &H3, &HF6, &HE, &H61, &H35, &H57, &HB9, &H86, &HC1, &H1D, &H9E, _
  136.          &HE1, &HF8, &H98, &H11, &H69, &HD9, &H8E, &H94, &H9B, &H1E, &H87, &HE9, &HCE, &H55, &H28, &HDF, _
  137.          &H8C, &HA1, &H89, &HD, &HBF, &HE6, &H42, &H68, &H41, &H99, &H2D, &HF, &HB0, &H54, &HBB, &H16)
  138.  
  139.      sboxinv = Array( _
  140.          &H52, &H9, &H6A, &HD5, &H30, &H36, &HA5, &H38, &HBF, &H40, &HA3, &H9E, &H81, &HF3, &HD7, &HFB, _
  141.          &H7C, &HE3, &H39, &H82, &H9B, &H2F, &HFF, &H87, &H34, &H8E, &H43, &H44, &HC4, &HDE, &HE9, &HCB, _
  142.          &H54, &H7B, &H94, &H32, &HA6, &HC2, &H23, &H3D, &HEE, &H4C, &H95, &HB, &H42, &HFA, &HC3, &H4E, _
  143.          &H8, &H2E, &HA1, &H66, &H28, &HD9, &H24, &HB2, &H76, &H5B, &HA2, &H49, &H6D, &H8B, &HD1, &H25, _
  144.          &H72, &HF8, &HF6, &H64, &H86, &H68, &H98, &H16, &HD4, &HA4, &H5C, &HCC, &H5D, &H65, &HB6, &H92, _
  145.          &H6C, &H70, &H48, &H50, &HFD, &HED, &HB9, &HDA, &H5E, &H15, &H46, &H57, &HA7, &H8D, &H9D, &H84, _
  146.          &H90, &HD8, &HAB, &H0, &H8C, &HBC, &HD3, &HA, &HF7, &HE4, &H58, &H5, &HB8, &HB3, &H45, &H6, _
  147.          &HD0, &H2C, &H1E, &H8F, &HCA, &H3F, &HF, &H2, &HC1, &HAF, &HBD, &H3, &H1, &H13, &H8A, &H6B, _
  148.          &H3A, &H91, &H11, &H41, &H4F, &H67, &HDC, &HEA, &H97, &HF2, &HCF, &HCE, &HF0, &HB4, &HE6, &H73, _
  149.          &H96, &HAC, &H74, &H22, &HE7, &HAD, &H35, &H85, &HE2, &HF9, &H37, &HE8, &H1C, &H75, &HDF, &H6E, _
  150.          &H47, &HF1, &H1A, &H71, &H1D, &H29, &HC5, &H89, &H6F, &HB7, &H62, &HE, &HAA, &H18, &HBE, &H1B, _
  151.          &HFC, &H56, &H3E, &H4B, &HC6, &HD2, &H79, &H20, &H9A, &HDB, &HC0, &HFE, &H78, &HCD, &H5A, &HF4, _
  152.          &H1F, &HDD, &HA8, &H33, &H88, &H7, &HC7, &H31, &HB1, &H12, &H10, &H59, &H27, &H80, &HEC, &H5F, _
  153.          &H60, &H51, &H7F, &HA9, &H19, &HB5, &H4A, &HD, &H2D, &HE5, &H7A, &H9F, &H93, &HC9, &H9C, &HEF, _
  154.          &HA0, &HE0, &H3B, &H4D, &HAE, &H2A, &HF5, &HB0, &HC8, &HEB, &HBB, &H3C, &H83, &H53, &H99, &H61, _
  155.          &H17, &H2B, &H4, &H7E, &HBA, &H77, &HD6, &H26, &HE1, &H69, &H14, &H63, &H55, &H21, &HC, &H7D)
  156.  
  157.      rcon = Array( _
  158.          &H8D, &H1, &H2, &H4, &H8, &H10, &H20, &H40, &H80, &H1B, &H36, &H6C, &HD8, &HAB, &H4D, &H9A, _
  159.          &H2F, &H5E, &HBC, &H63, &HC6, &H97, &H35, &H6A, &HD4, &HB3, &H7D, &HFA, &HEF, &HC5, &H91, &H39, _
  160.          &H72, &HE4, &HD3, &HBD, &H61, &HC2, &H9F, &H25, &H4A, &H94, &H33, &H66, &HCC, &H83, &H1D, &H3A, _
  161.          &H74, &HE8, &HCB, &H8D, &H1, &H2, &H4, &H8, &H10, &H20, &H40, &H80, &H1B, &H36, &H6C, &HD8, _
  162.          &HAB, &H4D, &H9A, &H2F, &H5E, &HBC, &H63, &HC6, &H97, &H35, &H6A, &HD4, &HB3, &H7D, &HFA, &HEF, _
  163.          &HC5, &H91, &H39, &H72, &HE4, &HD3, &HBD, &H61, &HC2, &H9F, &H25, &H4A, &H94, &H33, &H66, &HCC, _
  164.          &H83, &H1D, &H3A, &H74, &HE8, &HCB, &H8D, &H1, &H2, &H4, &H8, &H10, &H20, &H40, &H80, &H1B, _
  165.          &H36, &H6C, &HD8, &HAB, &H4D, &H9A, &H2F, &H5E, &HBC, &H63, &HC6, &H97, &H35, &H6A, &HD4, &HB3, _
  166.          &H7D, &HFA, &HEF, &HC5, &H91, &H39, &H72, &HE4, &HD3, &HBD, &H61, &HC2, &H9F, &H25, &H4A, &H94, _
  167.          &H33, &H66, &HCC, &H83, &H1D, &H3A, &H74, &HE8, &HCB, &H8D, &H1, &H2, &H4, &H8, &H10, &H20, _
  168.          &H40, &H80, &H1B, &H36, &H6C, &HD8, &HAB, &H4D, &H9A, &H2F, &H5E, &HBC, &H63, &HC6, &H97, &H35, _
  169.          &H6A, &HD4, &HB3, &H7D, &HFA, &HEF, &HC5, &H91, &H39, &H72, &HE4, &HD3, &HBD, &H61, &HC2, &H9F, _
  170.          &H25, &H4A, &H94, &H33, &H66, &HCC, &H83, &H1D, &H3A, &H74, &HE8, &HCB, &H8D, &H1, &H2, &H4, _
  171.          &H8, &H10, &H20, &H40, &H80, &H1B, &H36, &H6C, &HD8, &HAB, &H4D, &H9A, &H2F, &H5E, &HBC, &H63, _
  172.          &HC6, &H97, &H35, &H6A, &HD4, &HB3, &H7D, &HFA, &HEF, &HC5, &H91, &H39, &H72, &HE4, &HD3, &HBD, _
  173.          &H61, &HC2, &H9F, &H25, &H4A, &H94, &H33, &H66, &HCC, &H83, &H1D, &H3A, &H74, &HE8, &HCB)
  174.  
  175.      Dim expandedKey, block(16), aesKey(32), i, isDone, j, isEncode
  176.      Dim sPlain, sPass, sCipher, sTemp
  177.      Dim x, r, y, temp(4), intTemp
  178.      '<<<MOD = Added the following constants
  179.      Const forreading = 1, forwriting = 2, forappend = 8
  180.      '>>>
  181.  
  182.  
  183.      '<<MOD
  184.      sPass = sPassIn
  185.      '>>
  186.      '<<Mod changed the following line
  187.      'For i = 0 To (Len(oPW.value) - 1)
  188.      '
  189.      For i = 0 To (Len(sPass) - 1)
  190.      '>>
  191.      '<<Mod changed the following line
  192.          'aesKey(i) = Asc(Mid(oPW.value, i + 1, 1))
  193.          aesKey(i) = Asc(Mid(sPass, i + 1, 1))
  194.      '>>>
  195.      Next
  196.      '<<Mod changed the following line
  197.      'For i = Len(oPW.value) To 31
  198.      For i = Len(sPass) To 31
  199.      '>>
  200.          aesKey(i) = 0
  201.      Next
  202.      'missing sbox
  203.      expandedKey = expandKey(aesKey, sbox, rcon)
  204.  
  205.      For y = 1 To 5
  206.          sPlain = Range("A" & y)
  207.          sCipher = ""
  208.          j = 0
  209.          isDone = False
  210.  
  211.          Do Until isDone
  212.              sTemp = Mid(sPlain, j * 16 + 1, 16)
  213.  
  214.              If Len(sTemp) < 16 Then
  215.                  For i = Len(sTemp) To 15
  216.                      sTemp = sTemp & Chr(0)
  217.                  Next
  218.              End If
  219.  
  220.              For i = 0 To 15
  221.                  block(i) = Asc(Mid(sTemp, (i Mod 4) * 4 + (i \ 4) + 1, 1))
  222.              Next
  223.  
  224.              If (j + 1) * 16 >= Len(sPlain) Then
  225.                  isDone = True
  226.              End If
  227.  
  228.              j = j + 1
  229.  
  230.              If isEncode Then
  231.                  r = 0
  232.                  For i = 0 To 15
  233.                      block(i) = block(i) Xor expandedKey((i Mod 4) * 4 + (i \ 4))
  234.                  Next
  235.  
  236.                  For x = 1 To 13
  237.                      block(0) = sbox(block(0))
  238.                      block(1) = sbox(block(1))
  239.                      block(2) = sbox(block(2))
  240.                      block(3) = sbox(block(3))
  241.  
  242.                      intTemp = sbox(block(4))
  243.                      block(4) = sbox(block(5))
  244.                      block(5) = sbox(block(6))
  245.                      block(6) = sbox(block(7))
  246.                      block(7) = intTemp
  247.  
  248.                      intTemp = sbox(block(8))
  249.                      block(8) = sbox(block(10))
  250.                      block(10) = intTemp
  251.                      intTemp = sbox(block(9))
  252.                      block(9) = sbox(block(11))
  253.                      block(11) = intTemp
  254.  
  255.                      intTemp = sbox(block(12))
  256.                      block(12) = sbox(block(15))
  257.                      block(15) = sbox(block(14))
  258.                      block(14) = sbox(block(13))
  259.                      block(13) = intTemp
  260.  
  261.                      r = x * 16
  262.                      For i = 0 To 3
  263.                          temp(0) = block(i)
  264.                          temp(1) = block(i + 4)
  265.                          temp(2) = block(i + 8)
  266.                          temp(3) = block(i + 12)
  267.  
  268.                          block(i) = g2(temp(0)) Xor temp(3) Xor temp(2) Xor g3(temp(1)) Xor expandedKey(r + i * 4)
  269.                          block(i + 4) = g2(temp(1)) Xor temp(0) Xor temp(3) Xor g3(temp(2)) Xor expandedKey(r + i * 4 + 1)
  270.                          block(i + 8) = g2(temp(2)) Xor temp(1) Xor temp(0) Xor g3(temp(3)) Xor expandedKey(r + i * 4 + 2)
  271.                          block(i + 12) = g2(temp(3)) Xor temp(2) Xor temp(1) Xor g3(temp(0)) Xor expandedKey(r + i * 4 + 3)
  272.                      Next
  273.                  Next
  274.  
  275.                  block(0) = sbox(block(0)) Xor expandedKey(224)
  276.                  block(1) = sbox(block(1)) Xor expandedKey(228)
  277.                  block(2) = sbox(block(2)) Xor expandedKey(232)
  278.                  block(3) = sbox(block(3)) Xor expandedKey(236)
  279.  
  280.                  intTemp = sbox(block(4)) Xor expandedKey(237)
  281.                  block(4) = sbox(block(5)) Xor expandedKey(225)
  282.                  block(5) = sbox(block(6)) Xor expandedKey(229)
  283.                  block(6) = sbox(block(7)) Xor expandedKey(233)
  284.                  block(7) = intTemp
  285.  
  286.                  intTemp = sbox(block(8)) Xor expandedKey(234)
  287.                  block(8) = sbox(block(10)) Xor expandedKey(226)
  288.                  block(10) = intTemp
  289.                  intTemp = sbox(block(9)) Xor expandedKey(238)
  290.                  block(9) = sbox(block(11)) Xor expandedKey(230)
  291.                  block(11) = intTemp
  292.  
  293.                  intTemp = sbox(block(12)) Xor expandedKey(231)
  294.                  block(12) = sbox(block(15)) Xor expandedKey(227)
  295.                  block(15) = sbox(block(14)) Xor expandedKey(239)
  296.                  block(14) = sbox(block(13)) Xor expandedKey(235)
  297.                  block(13) = intTemp
  298.              Else
  299.                  block(0) = sboxinv(block(0) Xor expandedKey(224))
  300.                  block(1) = sboxinv(block(1) Xor expandedKey(228))
  301.                  block(2) = sboxinv(block(2) Xor expandedKey(232))
  302.                  block(3) = sboxinv(block(3) Xor expandedKey(236))
  303.  
  304.                  intTemp = sboxinv(block(4) Xor expandedKey(225))
  305.                  block(4) = sboxinv(block(7) Xor expandedKey(237))
  306.                  block(7) = sboxinv(block(6) Xor expandedKey(233))
  307.                  block(6) = sboxinv(block(5) Xor expandedKey(229))
  308.                  block(5) = intTemp
  309.  
  310.                  intTemp = sboxinv(block(8) Xor expandedKey(226))
  311.                  block(8) = sboxinv(block(10) Xor expandedKey(234))
  312.                  block(10) = intTemp
  313.                  intTemp = sboxinv(block(9) Xor expandedKey(230))
  314.                  block(9) = sboxinv(block(11) Xor expandedKey(238))
  315.                  block(11) = intTemp
  316.  
  317.                  intTemp = sboxinv(block(12) Xor expandedKey(227))
  318.                  block(12) = sboxinv(block(13) Xor expandedKey(231))
  319.                  block(13) = sboxinv(block(14) Xor expandedKey(235))
  320.                  block(14) = sboxinv(block(15) Xor expandedKey(239))
  321.                  block(15) = intTemp
  322.  
  323.                  For x = 13 To 1 Step -1
  324.                      r = x * 16
  325.  
  326.                      For i = 0 To 3
  327.                          temp(0) = block(i) Xor expandedKey(r + i * 4)
  328.                          temp(1) = block(i + 4) Xor expandedKey(r + i * 4 + 1)
  329.                          temp(2) = block(i + 8) Xor expandedKey(r + i * 4 + 2)
  330.                          temp(3) = block(i + 12) Xor expandedKey(r + i * 4 + 3)
  331.  
  332.                          block(i) = g14(temp(0)) Xor g9(temp(3)) Xor g13(temp(2)) Xor g11(temp(1))
  333.                          block(i + 4) = g14(temp(1)) Xor g9(temp(0)) Xor g13(temp(3)) Xor g11(temp(2))
  334.                          block(i + 8) = g14(temp(2)) Xor g9(temp(1)) Xor g13(temp(0)) Xor g11(temp(3))
  335.                          block(i + 12) = g14(temp(3)) Xor g9(temp(2)) Xor g13(temp(1)) Xor g11(temp(0))
  336.                      Next
  337.  
  338.                      block(0) = sboxinv(block(0))
  339.                      block(1) = sboxinv(block(1))
  340.                      block(2) = sboxinv(block(2))
  341.                      block(3) = sboxinv(block(3))
  342.  
  343.                      intTemp = sboxinv(block(4))
  344.                      block(4) = sboxinv(block(7))
  345.                      block(7) = sboxinv(block(6))
  346.                      block(6) = sboxinv(block(5))
  347.                      block(5) = intTemp
  348.  
  349.                      intTemp = sboxinv(block(8))
  350.                      block(8) = sboxinv(block(10))
  351.                      block(10) = intTemp
  352.                      intTemp = sboxinv(block(9))
  353.                      block(9) = sboxinv(block(11))
  354.                      block(11) = intTemp
  355.  
  356.                      intTemp = sboxinv(block(12))
  357.                      block(12) = sboxinv(block(13))
  358.                      block(13) = sboxinv(block(14))
  359.                      block(14) = sboxinv(block(15))
  360.                      block(15) = intTemp
  361.                  Next
  362.  
  363.                  r = 0
  364.                  For i = 0 To 15
  365.                      block(i) = block(i) Xor expandedKey((i Mod 4) * 4 + (i \ 4))
  366.                  Next
  367.              End If
  368.  
  369.              For i = 0 To 15
  370.                  sCipher = sCipher & Chr(block((i Mod 4) * 4 + (i \ 4)))
  371.              Next
  372.          Loop
  373.  
  374.          Range("B" & y) = sCipher
  375.      Next
  376.  
  377.  
  378.  End Sub
  379.  
  380.  Function keyScheduleCore(ByRef row(), ByVal a, ByRef box(), ByRef rcon())
  381.      Dim result(4), i
  382.  
  383.      For i = 0 To 3
  384.          result(i) = box(row((i + 5) Mod 4))
  385.      Next
  386.  
  387.      result(0) = result(0) Xor rcon(a)
  388.      keyScheduleCore = result
  389.  End Function
  390.  
  391.  Function expandKey(ByRef key(), ByRef box(), ByRef rcon())
  392.      'MOD added () to array variables
  393.      Dim rConIter, temp(), i, result(240)
  394.  
  395.      ReDim temp(4)
  396.      rConIter = 1
  397.  
  398.      For i = 0 To 31
  399.          result(i) = key(i)
  400.      Next
  401.  
  402.      For i = 32 To 239 Step 4
  403.          temp(0) = result(i - 4)
  404.          temp(1) = result(i - 3)
  405.          temp(2) = result(i - 2)
  406.          temp(3) = result(i - 1)
  407.  
  408.          If i Mod 32 = 0 Then
  409.              temp = keyScheduleCore(temp, rConIter, box, rcon)
  410.              rConIter = rConIter + 1
  411.          End If
  412.  
  413.          If i Mod 32 = 16 Then
  414.              temp(0) = box(temp(0))
  415.              temp(1) = box(temp(1))
  416.              temp(2) = box(temp(2))
  417.              temp(3) = box(temp(3))
  418.          End If
  419.  
  420.          result(i) = result(i - 32) Xor temp(0)
  421.          result(i + 1) = result(i - 31) Xor temp(1)
  422.          result(i + 2) = result(i - 30) Xor temp(2)
  423.          result(i + 3) = result(i - 29) Xor temp(3)
  424.      Next
  425.  
  426.      expandKey = result
  427.  End Function
  428.  
  429.  
  430.  Function RunAES_Click()
  431.     AES_ECB ("TestKey9")
  432.  End Function
However, the "encrypted" strings don't appear to be valid, full of gibberish characters and not matching any online AES encryption tools.

Is there anything I am doing wrong here?
Nov 11 '16 #1
1 1135
Can you not use some library to encrypt?
Nov 11 '16 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: Cliff | last post by:
We are trying to connect to 3 different Oracle databases using MS Access as the front-end and ODBC as the connection. The problem that we are having is that 1 of the databases requires a...
10
by: crawlerxp | last post by:
This is the problem: I do not get the output I need when encoding and decoding data using rijndael alghoritm. Look at the code and see what the problem is actually: Please paste this code into...
7
by: helmut woess | last post by:
Hi, has anybody knowledge about the safetyness of encrypting stored procs in SQL-Server 2005 using WITH ENCRYPTION? Or can they be hacked with the same old tools which exists for SQL 2000? ...
3
by: Chuck P | last post by:
I need to deploy and asp.net 2.0 application that has dpapi/machine encrypted connection strings. I tried using the VS Build Publish menu selection and then putting the encryption in the...
1
by: polaris431 | last post by:
I would like to obtain encypted data over a network in real-time. The nature of the data and process is as follows... A physical hardware device is located at some remote location. When the...
3
by: john.f.klein | last post by:
I want to be able to contact my wife via video teleconferencing and see and talk to her and our new baby. For this purpose, I need software and hardware that can allow me to do with secure and...
3
OraMaster
by: OraMaster | last post by:
Please have a look on below statements 1. encryption is useful to protect against the THEFT of data 2. encryption is not what you use to prevent ACCESS to data. I think if unauthorized access...
6
Parul Bagadia
by: Parul Bagadia | last post by:
Hello, I am doing a project in USB OVER IP, which is about sharing a remote USB device from your workstation, for ex. say two PCs are connected by LAN and a scanner is attached to one PC and user...
2
by: vffg5555555555 | last post by:
how to send email attachments with encryption
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.