在进行SHA-512编码之前,必须确定数据的原始长度,因为SHA-512是一种散列函数,它能将输入的任意长度字符串映射为一个512位的散列值(即128个16进制的字符串)。在输入用户信息时,SHA-512不仅可以确保原始信息的安全性,而且还能提高系统的传输效率以及验证数据的完整性。和其他的散列函数一样,SHA-512也非常安全,只要把原文件传给SHA-512,它就会返回一个128位的散列值,使用该哈希值可以验证文件的完整性。因为SHA-512的散列函数是不可逆的,因此攻击者就没法逆向推算出原文。
SHA-512支持最大输入长度为2^128-1字节(约合1.3e+38)。另外,SHA-512使用的是64位(8字节)为最小块大小进行加密,多余这个大小的消息需要经过分组和填充以处理它们。如果500字符的长度超过了65536字节,则需要对消息进行分块。为了确保消息的完整性,会在每一个块的末尾添加一个称为差动填充的字节,来将消息的长度对应到任意长度的64位块上。