由于项目的设计需要项目中资源上传的时候都是需要上传 md5 来校验文件,我是负责的网页前端与 java 后端部分的。
昨天,ios 端的兄弟说有时候文件上传之后有时候地址是不能访问的(公司用的阿里云 oss )。我去看了一些发现了文件名有许多的奇奇怪怪的字符,被后台替换为空格了。我问了一些 ios 的兄弟他说的是算出来的 md5 值。我也问了一下安卓的兄弟,发现我们三端计算出来的文件 md5 都有自己的格式。(我自己写的前端和后端的计算方法得出的都是一样的 md5 )
前端,java 后台:2cf8510722f63a433865b7b244738b22
安卓:fuo0n0ga3rfs9qo5dd5qdmq8c
ios:Z L6tJUcklneku8zMPoqcw==
前端和 java 后台是我自己写所以怎么算都是一样的。主要是安卓和 iso 他们和我说编程语言不一样算出来的就是不一样的,而且 ios 他说没法算出我这种 md5 数值。
我想的是 md5 难道不都是通过获取文件的二进制流再进行一系列的算法得出的一个固定的值嘛,难道说在不同的地方读取出来的文件二进制流不一样?或者说是使用的算法不一样?还是说只是他们没有找到方法而已?还是说是我自己算错了。
大佬们,解决一下我的疑问吧!!!!!
昨天,ios 端的兄弟说有时候文件上传之后有时候地址是不能访问的(公司用的阿里云 oss )。我去看了一些发现了文件名有许多的奇奇怪怪的字符,被后台替换为空格了。我问了一些 ios 的兄弟他说的是算出来的 md5 值。我也问了一下安卓的兄弟,发现我们三端计算出来的文件 md5 都有自己的格式。(我自己写的前端和后端的计算方法得出的都是一样的 md5 )
前端,java 后台:2cf8510722f63a433865b7b244738b22
安卓:fuo0n0ga3rfs9qo5dd5qdmq8c
ios:Z L6tJUcklneku8zMPoqcw==
前端和 java 后台是我自己写所以怎么算都是一样的。主要是安卓和 iso 他们和我说编程语言不一样算出来的就是不一样的,而且 ios 他说没法算出我这种 md5 数值。
我想的是 md5 难道不都是通过获取文件的二进制流再进行一系列的算法得出的一个固定的值嘛,难道说在不同的地方读取出来的文件二进制流不一样?或者说是使用的算法不一样?还是说只是他们没有找到方法而已?还是说是我自己算错了。
大佬们,解决一下我的疑问吧!!!!!