Scala-为什么我不能使用MD5加密文件?

时间:2017-05-03 12:25:31

标签: scala md5

我正在尝试使用MD5加密文件。下面列出了我的代码。

import java.security.MessageDigest
import scala.io.Source
import java.io.PrintWriter
import java.io.File

    object MD5 {
      def md5(file: String)= {
        val text=Source.fromFile(file)
        val s=text.mkString
        val hash = MessageDigest.getInstance("MD5").digest(s.getBytes)
        hash.map("%02x".format(_)).mkString
        }

     def main(args:Array[String])={
        val cipher=md5("InputFile")
        val pw = new PrintWriter(new File("OutputFile"))
        pw.write(cipher)
        pw.close
      }}

无论我的InputFile有多大,OutputFile总是看起来大小相同(大约10个字节)。问题出在哪里?有人可以帮我搞清楚吗?

1 个答案:

答案 0 :(得分:4)

通过" ecnryption"人们通常意味着这样一种数据转换,即某人拥有适当的秘密数据"可以扭转这种转变。

另一方面,

"Hash function"根据定义是非唯一的可重复转换,它将仲裁数据转换为固定大小的"哈希"。 MD5是一个旧的cryptographic hash function,这意味着这是一个"哈希函数"与其他加密相关的属性(例如很难找到碰撞)。旁注:MD5已经足够老了,不再被认为是加密的了。 MD5的典型当前用途是验证数据完整性。

所以是的,MD5用于加密是错误的。如果您想加密,请查看AES ciphers