这个报错多半是ORM建立数据表的时候,密码列给的长度不足导致的。

比如把

password_hash = db.Column(db.String(64))

改为

password_hash = db.Column(db.String(120)

然后重新建立表即可。

原因:

表没有足够空间放置加密后的数据,sha512_crypt需要至少120字节。(86 char hash + additional metadata the SHA512 algorithm stores)