Brian Dunning's FileMaker Custom Functions

ChaosHash ( text ; hashLength )

Uses a chaotic process to create a hash of the specified length.

  Average rating: 4.6 (33 votes) Log in to vote

Jeremy Bante   Jeremy Bante

Share on Facebook Share on Twitter

  Sample input:
ChaosHash ( "Some original text" ; 16 )
  Sample output:

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

ChaosHash creates a hash of the text parameter via a pseudo-chaotic process suitable for the constraints of FileMaker custom functions.

This function has not been subjected to rigorous cryptanalysis, and the author does not warranty the security or collision resistance of results.



comment   comment, VR
Jan 6, 2011
"a chaotic process adapted to the constraints of FileMaker custom functions"

Adapted from ... ?
Jeremy Bante   Jeremy Bante, San Mateo, CA, USA
Jan 6, 2011
This function (along with the ChaosEncrypt and ChaosDecrypt functions) is modeled after the general pattern of a stream cipher where a chaotic process is used to generate the key stream (pad) before applying it to the plaintext. I did not try to faithfully adapt any specific existing algorithm. All the popularly discussed algorithms are optimized for manipulating binary data, which is unacceptably inefficient in a FileMaker custom function without access to native bit-wise logic operations. Hence, I use arithmetic analogues (not equivalents!). I also avoid looping subroutines as much as possible, given the limitation on FileMakers calculation stack depth.

Log in to post comments.


Note: these functions are not guaranteed or supported by Please contact the individual developer with any questions or problems.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 15 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth:

Under construction. Email me your wish list for improvements.