This implementation is broken. It concatenates a hash of the plaintext to a CTR-mode ciphertext. That's weakly authenticated and leaks information about the plaintext. It would be better to HMAC the ciphertext with a second key value.
Fixed. Thank you for advice about HMAC, now I am use it.