要求补完一个程序。作用是使用sha加密和一个共享密钥获得文件摘要。目前的问题是共享密钥怎么使用还有一部分程序不会写。
// Insert the correct class name for the required cryptoprimitive (1 mark, 1 word)
<< MessageDigest >> digestCryptoprimitive = null;
// Now, instantiate the required cryptoprimitive (2 marks, 5 or 6 lines)
try {
MessageDigest digestCryptoprimitive = MessageDigest.getInstance("SHA-224");
digestCryptoprimitive.update(msg.getBytes());
}
// Now, start the hash calculation with the shared secret (1 mark, 1 line)
// "Prime the pump" - we've got to read something before we can digest it
// and not do anything if we read nothing.
try {
bytesRead = in.read(inputBuffer);
} catch (IOException e) {
printErrorMessage("Error reading input file " + args[1],e); System.exit(1);
}
// As long as we've read something, loop around updating the digest value
// bytesRead will be zero if nothing was read, or -1 on EOF - treat them both the same
while (bytesRead > 0) {
// Update the digest with the bytes that were read (2 marks, 1 line)
bytesRead =
// And read in the next block of the file
try {
bytesRead = in.read(inputBuffer);
} catch (IOException e) {
printErrorMessage("Error reading input file " + args[1],e); System.exit(1);
}
}
// Get the final digest value (1 mark, complete 1 line)
messageDigest =
// And print the digest value as a long hex string (1 mark, 1 line)
}