more thorough test + simpler _decrypt (kudos to @philfreo)