PHP – 3302 bytes
This solution uses a gzcompress
ed string of uppercase space-delimited PGP words, e.g. AARDVARK ABSURD ACCRUE...WOODLARK ZULU
.
<?php $f='explode';$g='gzuncompress';$h='base64_decode';$a[]=$f(' ',$g($h('eNollVli5CAMRK/CVWSMbWJAhKU9zv0PMk/0R6jqsGgrySJt/0i7nWx9tt2J920GILPsLR4DmIn1OFL04BWEYzGn0LuTdGpiTfqwauFSzuqk+BgKh2tN/KuN2PnR+7RXxxUKN0cS1r8RvNtkUy2Av48Y0r7Yg2eQ8qNuC5JjOcE9Sa5guOInGPZH/oFHwx7HQzoEU1toPRDUFlOK653YzUDi3R/+YOpv2YORZ2jzF2yGLdpZzdt6RPXuFy+6rXEnds40gk+RMI3dE1da9Pe7TODC4aWzNxt+Y2SOYVbn358d8CFbTvwlsSVLLGyM0MDg7S1/xR4SoLdFC9a6thvpy2TLE715lIz1Hv0Xm2qGBSn2iEX2KMF7xW/WjFkfIKwNq/ps6wkLatenGCv3C+hzqHKiTR/FTsxM/XYj3ZLl54bNXfq1qUW0k41NEcdOAJdQgF3Pbjf2JmcJwzAWOQOEs8dMbmmKqPb2jW7HCPW1o7Pcobh9ViVN+4OTlgb2FuymvnCeS38hntfY0J2j7EqxFz6syaQWmtUhdC8V+OcDLoU3nJYtI4MwL3fICvMw+c7hjiRnVfQKGSsRR3pHk+oOUjVmC0ZyWMk9Gm+SdoSHJ7h9yh8OB3fiGmGdKa7anml6xZdTz5OOAdN+mJTOFjLxuXPGXaw+l9BSw128tyTiLgoZXhcJjAgNZyKTsXxM3YaaaILYk2X+R57N+o8r3+LcCFOPA3yiu5P8Q4poQ/DRJIJUcmhxODqrkLmM9prLeslzuzwbicnTJFaoLX0TIHXMYoilVlxZNbCOUbmXD7qNiWdYTUqRtA7u01ziqry7vK4G8RdADbtQ5Hq9Pf4yb2qS91K7XNMc6moLPk0kBznwC+iXCQQWy1j/0ScZzhqTrZV333ER5e9kctnzv5Mp0QAd4lDkiMyfJoOGG65Zt6MCDGjLwIlUAfIcuER57CCI76xD5/r1CYUitLDGU7uwyN24eRM5rp2rH5pusxtQQZ6aJAQFdomJ2gzIs9s++kTjeNx9KKSqeyVuexg2Vkp7kJViBkNA/50Jsrq5X2J6B7JZgehzMldcv2dK6B7y7jYku3UR21xm1q2G70XqmmJGvltIYF0CuUDiuyZlmeNakXZ96VKuVimMaDBIW60IS2mL5it1bRqNxNMerfwXufX6fjuvD7K05oSxIiMYie0hw5CyL0sD58haH8GmXazG2hoFfRBqNi+G1meVB9Yyt+cpXJkt66TwfeJVQU39YXxsyyLzxHQzaOXoO8jnirVaP2c3Qq6BkozVvXyvOqpkelMVbGW1LRuYtom2ely/ZxaALGQ+NDD9wTlgboQ9ZlZOz1LI13i9feJm8UwaukhMerM8lreJlknXrD2s1QrykcrlD8+asD6RCew+k8IW99inOADJ5sVKAyHsMJqJyj1xfY4fVb6WjKq/meZ/RSEoQA==')));$a[]=$f(' ',$g($h('eNo1lmuChDgIhK+Sq9AxKtsxuHnoOPc/yH7E2T9DjXlAoChalmraS2otyHJpSzXI2lM9pO9Btq2mTXoKkr+SFXPotvcnyDFy6m5aOlIBlZ5KkSDnmTWKfzktZwtSD21dI3dUTMY27jddgvTMRo2Aw9q5p8ri6Ha2J3zk82Qr2Pi9iaCC6ifFkcInZbu3aqMs4aOrRcktfGx5tiGVT2bflnL2I1aXVLMWDlnvdmR/56fK8hn1cXDJYm5/NavgrSb5yi2sDT+3dQ9hNPUEHb5hdGJZpYcoB3G4LYsuniNQsfKRnIFn1Wi1gNzJtKnLl6BiygmPfoAoR7bmiNysT4i7HB9PPtmJ5MO+icWdhG4WyF3dHo8imueqkNNoB+F1Nf94sMZzAKeUZ1orXpxoJY5a/+Cqy9/ZstqsjsP/Kw1sqbTRJhq5kwVgPe2N2Wq19vobJWqe8fCp2eWPqyPqqj8hDn9Is4MjBIitYZGvdQlLivJGAEq+zYEekrFNt+Iel9RT7FYnqJuHPtHhxVw0dpmLWqzJcFDZ7mEt2uSTfU+DKJpWR3WcXa/5kWPvPiNEv9Yj+P3lBCHtzke8p1Ih77sMsSvVpErp3yHzLEDPd7VRal4D+OphIZGEZ4E/6UdmqOkHl/Ox6ccWsrpKi1o8latmmZesWjR+n0A1/Lzbrn1w61pxxeknbLJsqVcH+UrNecn/k6obFGriS2490RsMH+4CcCntug3tUr3STrBBPqsjzX7P7gy+rX5Bv3SQEeWeZJlt5xCKvM25U57u9+5QaPreLc/eCDv88r5n7VmqDEQgKDzkJdQVlDrXKok4ZwoVn3Caw74Du4o/E5tq8e9OTZcRLc1P4R00XiYoNdkmHR2VvwsvRxSZZ0r5jBz+ERopSvhnnOoKktMJUR+sN7E/MWSFfiToIDtdISu6F/djNuohFIPChCNROMHQIHg61Pke7UwvvNkHWto4PPlkNROQwEhwFZc8MlhmCxyWpbXUHCBmvmSFcMXty0ekEHp1C0Uqb/QXlcRzBHO3N/ZQrN5pc8kyusRbyHa1YCWjfv7fyd1cZjVPTbDRV00ZNQyneIdGbFko7QtobuyZuNUFHlyRnPLaKuc+0UHL+xovKE6hM1HEikSdpMYl40wFknphuGqW+prwLSZNcO7MA6HQ5440ufYDuv25IG3Jr7X4TX2lgowQKjcJdqI673XmvR8oZeQ7IgC6oIjzDPiDkLj/8RYWm7XtfuvDA9BVmhiesERpcOMOa0IqvGigqNQVM+WsptMnCY8G+VxzW+nj6HvaVBMH6Gzz2Kq//tUhh5ougnLEeEOfgvd3Gb7v0nfpsuyOGjWQfJstQFoQQQD0UV1LGhOEdAMiVJuZd4l+tagZL3fBazZYVNZwRTK82x3CHPKBCPX9j7WtDwo1+7yN83S1IfY2J4QzhEqeGnWuP/Rw35/Q0Q0b1SWtM8Bm+UInr3K6IzgoMRqWITUrjeT7qLgBFZ6whCjpDBnkEsallfHFW/2CyjQh0CX050x3nQ3r02dWk1EvUI/V4RGuxuAd5Z2wWCYnf8lj861+ew7jZP65ll8Sp7SQQ8HZEi6XHLTn0rqhvAKAWhTy8p8SHsxljyc83N6BhUCnFNJa4d71aPAgh1uZy0yzmxH490Phfl6PT/JfOE+SGp7Bo6T8BwHcnAI=')));$f=1;foreach(str_split($argv[1],2)as$b)echo$a[$f^=1][hexdec($b)].' ';echo"\n";
Save as decode.php
and run with argument in the command line, e.g.
$ php decode.php 9030e74b
PEACHY COMMANDO TRANSIT DISABLE
Because the specification mentioned ease of text entry, I guessed full 8-bit was a no-no and restricted to regular ASCII and base 64 for the encoding.
The PGP word lists on their own, no spaces, with one word running into the next, is 3919 characters long, so this solution represents a savings of 15.74%.
Another solution formatting the strings with mixed case AardvarkAbsurdAccrue...WoodlarkZulu
and splitting based on the case, while retaining the delimiter, turns out to be longer at 3433 bytes, even though I'm removing 510 spaces from the PGP word list source!
<?php $f='preg_split';$g='/([A-Z])/';$h='gzuncompress';$i='base64_decode';foreach([$f($g,$h($i('eNodVdF246oO/TY7STNzejvNmLRd67zJWDGMAXFA1ON+/d30IUixQWhvbckDleWTyjbMtZVlsLY0HmzkYSn+ocPSgg6PR/BWB8e0DD4GrnUIq4QhBNmHIImHGGVI1nPSIefAQ1Ffdai1IZA6TnXQQHX4UrYjzSJpJLs9PIelOztyGCn9kZEp+rSOvASKeWR2/pNh6k5/R34UXLCMHB5UdeRSuWyjD8H3474iaECwP/iNQexGC8PuKsW6MTSePbZJnPthka06BBoLdvvqxgJswSfuztbyWLzdjh4Xdz4sVR5bmSltY1PFRe3rCy9PHIH45MiXALLgqHI5ObYIcXK+cjg52YAIJuf+qoCXSPUEfD2BAKdWb79NEYmnwJRwuAPYpWwnmQudJOIiyyfBUvQk+9yP9twX2ROctB2nIvtDRE+lWU942yIqscBWMHFqs7dnqm4WJH4G2lmCnpGpo7ScZa3Yey60JlYYn2jlcyfl0cK5K4HLuXxjOCPwzIRdLW2czi1L0vOOhIDzQtrXBXK5rGsXzMWvTmcK4ZIWQcm62S8pgIdLAa+Xainz5a9lXi4Hr50IWAUS90QdyRMOS9OnQGuWwLDacT6FQwvlJ7CgrTBs5M7YU0EkiU+lX8zpSl9Ija/sVy7X4HuFrqFZqXyVdYWYrxKWBzRwLRyB4dr8QuD5B0Hp+gNRbC/wDxSEj5/IHihgWlj5Z/rsKoSR8Mk/awCV/9A+oyOe+fhm+hk6ksfj2e/+OdBfSf8TS4GxQiIvXLy++JRkf4FYyos42reXVii8NKjiF8oDSfMvztoSDEKX9OubUYj5lbZ+4+usrfIrmlRoec3q7WuxdKNjoePGZN1xQyEqJb25o/r/Gt8CHU5w6Baayq2wDW1h2AcXrNX10t6KT9r/yx5gWvYBSz5uhzpJvxstkJ3+bujQ8ruJ0kSr+sgTqXWsU+83dRM/pMSJV0hqYp8W5jJx7HsmznRMqHTr/ienlSfuo2ByuCJOfrYQ4QQ9dalOMreKFVUoUwNYXgz5AJLV0L7gnQGxwUsylpO3xgpwIRoc7TQZpk6a4cBWDfq2d5RxBDlijQWRjZN9RS+brYUAWZrtWADPdGVXJ2owTnrDmUS5D4tuv5+jgH07TA1+YSNBDCTrOhojB9olmUwJ885kptL7Ak4IMwgx2XERD+tXhMp4FNjk47sTjIKC3qHdSaQM68tOB2xaenRFKlyMch8oPsMpPV2jwBNxrUreO9twSjxMW6mYVqK0pKbVjNHMZkc7z/0SdDHO39FR3tY7YbTf0ZzoqnjnmLnqvXfR3WOw813A8l1yFDzuowgvoIjq+78W6d6nR8R4vhf5QwlrmwPfW5RybylxuB8WH4K3ZJu+JbCi7i3tQP+WMQj1LVfuC+h9pyzlHZHAxbvHPHtvqE76oK6CDxSd9aNDRJ7LB0HiC3/4/m36EMGHpGz/ttD+D3OmxWA=')),-1,3),$f($g,$h($i('eNotVdF24joM/LZAaWHP0rJA27OPwhGJDo6VlW2o+/V3lN4XJOzYGkkzctebSkmcc9ffJbN118I2URm7YTAeqHAXbxSli5MMY2ndVCMX/GaeOJUuFU6JunmOEgj/Z41RO5skFwncGX4jdxmXqvRdifhGQlcmzfPIxl0tOue2okuLmlYUbg+EtBXZhUPlFUd9DKY19Su5aqCYV9q3oZL1K9Vb5hjxtVrPFiXxSkvRKSKdlVF/qdZg79QrzLdEobQyphs9qK2qnxgKotYsXoEJu7Ug+pXKmiaEhkm99EAEJ2m6UIxrmk2CWlqTX+2GC93Y1hz5Yv4tQNWoGQ7Sv7b1SNPFiyr9GjnrjXk9olqDrgF+aIi7Vi9GCrzW6VJROsXShI1eYWdKzY0mVHytKVSzH+8q/c+pdNWl5vD+bxu8zCnX7E6NBbmu1WZdEKqZ5iVITUGiI8BC1jvSsBrkKl/r6qCzTrwGIBh7opsWeuJAS1A47J/AykTxibMMCVGeuHAoam5tAM7FmVDiJwmFfEeSZqqwhi8B40kyXSL284Wj8BWO1bnI3ZdwYPlGQ3XGbRDz+zvyJoXRyZSGTTKQbtkDGw3tybz5V8lPwcq8bOVAM4Bv8k0m3SDR1lPbfJED23whjOe0+dK+5mfKQRLq9CyR/PCzJAm39qzGOPjsgErt+dn4X8Wx9kL9wMVg450BOL2AEuDYC1iQCetuUMEXkBK4GPYupb1UKQS0ZQuCVNTK4EjE+a3z7qF229I3qK41b5n6RRrw0OhFPFuUHAXlLVjg4bYaFyJvwQ9XI29bb1ShzB04BNAU4XCpeYdcZ6/PDnEG3SVnKu3SlZANDFvConMKJd4l6CMgHpy6dHSHOg9OJHfSzz13d+68y4XSpcZfBL4H+lVnAejfPINf7Te7vEak8lvAnNL2SL/IxHsqYZxcRXtChVHsPaMRtHcqa9pLwPGgMy/eA9/spc91Qk33EiMAELi0FyNMm73k5Hzda6ScOcNilmBdE7ARzEKkvWaQo+grGVIB9FcGbnrlR44Lzle1Bw+YGW+gM+C+jaJvKWLswJ9xYSpvFl2jb7VchSOG0IFcPOGAVbRpsVDcgWbGXT5AD5gag6bFGM2jOxNUiA1gTeDAgdESYz4gd8j3wAnUQq0PbEvT7u79tCbwYSQ4oR1GDAdMVtiiPxejKIzbNNy4XGs8gBxoFuhxgPSXa9TVeDANWFSDc0efQRJ4X5A0QtalSzBRMhh3aAAr/Z/qwivtSH43ghwZuvUuHDELZsavT5Ijzz6eU4Hjr8PRSdDXgP28yBoWMy0DytFTXEaBe8J3iu7gkcCAOEJ0qeKbuyzrd4XK7ITSUnyo9idXCAR6olINoj5hLKOO7RTAE6/oCXNwmQYnRXoYNCet2BE74XrkCzDuofmFT4XL+MO1U6kzJxffqc6zi/7Op2X0otGnmmcJ4psN4ipjO0PEWg0KPOMlmL0hZ9SMZlx/1guFoGcw0bxtZ518BD/OmMjc6xlzQRwgHB8g7Wx4B5ATThomNHD15zbzw1xM7xjm3p13FADE4f7dAV1Vy3taXiaYa8MPqpTxld8Z3+egGHXDBwXX+AcNhAD9hwt/0A+xATOOPgTUUPvwlxbBP7R5JT9dIam0T58/4P/nKFNGQ+OnhBET6BMvyM9T+tmWIH/ZH/zGZH8rwFP6Dz6ZaRE=')),-1,3)]as$p){$t=[];for($i=0;$i<count($p);$i+=2)$t[]=$p[$i].$p[$i+1];$a[]=$t;}$f=1;foreach(str_split($argv[1],2)as$b)echo$a[$f^=1][hexdec($b)].' ';echo"\n";
Save as decode.php
and run the same way:
$ php decode.php 9030e74b
Peachy Commando Transit Disable
As well, using aARDVARKaBSURDaCCRUE...wOODLARKzULU
as the source text, the solution still comes out at 3433 bytes:
<?php $f='preg_split';$g='/([a-z])/';$h='gzuncompress';$i='base64_decode';foreach([$f($g,$h($i('eNodVdt227oO/DaIhEVWIMHNS1TlTbIdtycnjSs5yVr76/cwDyZgiQQxgwG0UrZPlKd1KC3b1ZjceDWBV5v9qa62SV1PJ/Gmro7Jrj4Il7LKqLKK6LyKRl5D0DUaz7GuKQmvufpS11IaAlXHsaxVqKzPlc1Gg2rcyEwnz2K7MyOHjeIP3ZiCj+PGViikjdn5J4YpM/3c+JRxgd1YTlTqxrlwnjYv4vtxXxBUEOwHfpuomcgy7Fw1G7dJ48Fjm4ahH1adikOgLWO3L27LwCY+cnemlrbszbT0uLjzZKjw1vJAcdparbioPT/j5ZkDEJ8d+SwgC06tnM+ODUKcnS8sZ6cTEMGk1F9l8BKonIGvJyBwSvHm22TVcBamiMMdwKx5OuuQ6awBFxk+K5ZczzoP/WjP3eoc4cRpOWedT6r1nJvxhLctoBIWtoCJcxu8uVBxgyLxC9AOKvWCTB1Fe9GxYO8l0xi5wvhII186Kacml64Ezpf8jeGCwAMTdrU4cby0pLFeZiQEnFeqfbWQy3Ucu2CufnR1IJFrtIqSdTNfo4CHawav12Io8fWnYbbXhcdOBGwFEvdCHckLDmurL0JjUmHY2nG+yFIzpRewUFtm2MCdsZeMSBpecr+Y442ekRrf2I+cb+J7hW7SjBa+6ThCzDcVe4IGbpkDMNyatwSefxGUXn8hiukF/oWC8PIb2QMFTJORf8enrkIYlSf+XQRU/o/mAR3xyss306/QkZ5Or372r0I/Nf5fDQljhUTeOPv65mPU+Q1iyW/qaJ7eWiZ5a1DFH5QHkuY/nGqLMAid459vRiHmd5r6je9DbYXf0aRK9j1Vb96zoTstlpY7k3HLHYUoFOvdLcX/0/gutDjFobu0qvfMRppl2BNnrMX10t6zj7X/11lgWvKCJS33pTqNfxtZyK7+bejQ/LdppZ3G6gPvVI3juvd+q27nk+aw8whJ7eyjZc47h75n50TLjkq37j9xHHnnPgp2hyvC7gcDEe7QU5fqrkMrWFGFvDeAZXuQF5BcD5ot3h0gVrzGw3D05jAKXIgGp3aaDqZO2sHCph7o295RhyPIEWvIiHw4nUf08jE1EcjymBYLeEdXdnFaD4yT3nBHpNSHRbffz1HAvh2miLd8qOgBybqO5tAF7RKPRBHz7khMufcFHJEBhBzJcVYP60eESngkfKTluxOOCgp6h3YnUmVYn2daYKPt0StS4XxU7gPFJzi5p3tU4Am4tmqaO9twcliONlI+Wg7aYj1aSRjNfMxo56Ffgi7G+Qc6ypvyIIz2B5oTXRUeHBKX+uhd9PAY7PxQsPzQFBSP+yjCCyii+P6vBXr06REwnh9Zf1DE2gbhRwuaHy1Glsdi8CH4iKbVjwhWqvuIM9B/JAzC+pEK9wX0flLS/IlI4OLTY559NlQnflFXwReKzvWrQ0Se9osgcctfvn+bvlTxIcnTv03af4OkKGA=')),-1,3),$f($g,$h($i('eNotVdF24joM/DbhiEQHx8rKNtR9C5QW9iwtC7Q9+/d3lN4XJOzYGkkz8tyZSkmc89xtJbPN68I2UhnmvjfuqfAcNxRljqP0Q2nzWCMX/GYeOZU5FU6J5mmKEgj/J41RZxslFwk8G34jzxmXqnRzifhGwlxGzdPAxnMtOuW2p1WLmvYUNjuEtD3ZikPlPUfd9aY1dXtZa6CY99q1vpJ1e9VN5hjxtVrHFiXxXkvRMSKdvVG3qtZgt9QpzLNEobQ3pg3tqO2rn+gLotYsXoERu7Ug+prKgUaEhkmddEAEJ2laUYwHmkyCWjqQX+2GC23YDhx5Zf4tQNWoGQ7SX7fDQOPKiyrdATnrhvkwoFq9HgC+b4h7UC9GCnzQcVVROsXSiI1OYSdKzY0mVPygKVSzH28t3c+ptNal5vD+bxu8zCnX7E6NBbke1CZdEKqZ5iVITUGiI8BC1i3SsBpkLU+H6qCzjnwAIBh7oY0WeuFAS1A47J/AykjxhbP0CVFeuHAoam6tB87FGVHiFwmFfEeSZqqwhi8B40UyrSL284qj8BqO1anI1pdwYPlGQ3XGHRHz+TnyMYXByZT6YzKQbtkDGw3tyXz8VclPwcq0bOVAE4Af80ZGPSLR1lE7PpEDOz4hjOd0fNKu5lfKQRLq9CqR/PCrJAmb9qrGOPjqgErt+NX4V8Wx9kZdz8Vg45YBOL2BEuDYG1iQCetuUME3kBK4GHYrpb1VKQS05QSCVNTK4EjE+ZPzbqe2OdEzqK41n5i6RRrw0OhFPCeUHAXlE1jg4U4aFyKfwA9XI59aZ1ShzDM4BNAU4XCp+YxcJ6/PGXF6PSdnKp3TmpANDFvConMKJT4n6CMgHpy6dPSMOvdOJHfSzz1bd7Z8zoXSqsbfBL4H+l0nAeg/PIFf7Q+7vAak8kfAnNIuSL/IyBcqYRhdRRdChVHsC6MRdHEqa7pIwPGgEy/eDt9cpMt1RE0vEiMAELh0ESNMm4vk5Hy9aKScOcNilmBdE7ARzEKki2aQo+g7GVIB9HcGbnrnXY4Lzne1HfeYGR+gM+B+DKIfKWLswJ9wYSofFl2jH7WshSOG0JVcPOGKVbRpsVDclSbGXT5Ar5gavabFGE2DOyNUiA1gTeDAldESY74id8j3ygnUQq2vbEvTtu79tCbwdSA4oV0HDAdMVtiiPxejKIzbNGy4rGu8ghxoFuhxhfSXa9TVeDUNWFSDs0WfQRJ4T5A0QtalSzBRMhh3bQAr3d/qwivtRn43gtwYuvUu3DALJsavT5IbTz6eU4Hjr8PNSdDVgP28yBoWMy0Dys1TXEaBe8Jbiu7gkcCAuEF0qeKbrSzrW4XK7I7SUtypdndXCAR6p1INor5jLKOO7R7AE6/oHXNwmQZ3RXoYNHet2BG743rkCzDuofmF74XL8MO1e6kTJxffvU6Ti37L92X0otH3micJ4psN4ipDe0DEWg0KfOAlmLwhD9SMJlz/0BWFoA8w0bxtDx19BO8emMjc6QNzQRwgHB8g7WF4B5ATThomNHB1jzbxzlxMnxjm3p1PFADE4e7TAa1Vy2daXiaYdcMPqpTxld8ZP6egGHX9FwXX+Bf1hADdlwu/1y+xHjOOvgTUUPvylxbBv7R5Jb9dIam0b58/4P/3IGNGQ+O3hAET6BsvyM9T+t2WIP/YH/zGZP8qwFP6Dz1XnCI=')),-1,3)]as$p){$t=[];for($i=0;$i<count($p);$i+=2)$t[]=$p[$i].$p[$i+1];$a[]=$t;}$f=1;foreach(str_split($argv[1],2)as$b)echo$a[$f^=1][hexdec($b)].' ';echo"\n";
Sample:
$ php decode.php 9030e74b
pEACHY cOMMANDO tRANSIT dISABLE
What's likely going on here are inefficiencies in the compression algorithm arising from using mixed case. Good to know - you learn something every day...