In the source you mention:
Store algorithm$salt:costfactor$hash in the database
I was just curious as to why that particular pattern: $ : $
a pattern of $ $ $ would lend it all to a simple split() when pulling it back out of the database.
$ : $ seems like a case for partition().
Anyway, it made me curious so I thought I would ask.