首先一个根本性错误:SHA256/512 依然是速度优先的,根本没有什么「循环 100000 次」的过程,中间每个 chunk 最多也就循环 64 次。 对于「循环 100000 次」的问题,楼上说得很清楚了:次方还是对一个数做 N 次乘法呢,你能化简次方运算为 1 次吗? 回到正题,加密循环可参考这篇文章: https://blog.csdn.net/u011583927/article/details/80905740 总的来说就是右旋和位运算叠加的过程,原理上来说因为要读取整个文件(而不是什么「循环 100000 次」),不能化简。