import java.security.MessageDigest;
publicclass MessageDigestExample {
publicstaticvoid main(String[] args) {
String source = "Java加密和数字签名";
String result = md5Encode(source);
System.out.println("MD5:" + result + ", length()=" + result.length());
result = sha1Encode(source);
System.out.println("SHA-1:" + result + ", length()=" + result.length());
}
publicstatic String md5Encode(String source) {
return encode(source, "MD5");
}
publicstatic String sha1Encode(String source) {
return encode(source, "SHA-1");
}
privatestatic String encode(String source, String digestName) {
if (source == null)
returnnull;
String result = null;
try {
byte[] plainText = source.getBytes("UTF-8");
// 使用getInstance("算法")来获得消息摘要
MessageDigest messageDigest = MessageDigest.getInstance(digestName);
// 开始使用算法
messageDigest.update(plainText);
// 输出算法运算结果
result = new String(messageDigest.digest(), "UTF8");
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
|
void run_scrum() {
const int Sprint_Length = 10;
int velocity = get_past_performance();
// Scrum 中的三个角色
Role team, product_owner, ScrumMaster;
// Scrum 中的制品
Product_Backlog product_backlog;
Sprint_Backlog sprint_backlog;
Burndown_Chart sprint_burndown_chart, release_burndown_chart;
Product_Increment product_increment;
//开始项目的三个准备条件
setup_team(team);
define_Definition_of_Done(team, product_owner);
initial_project(&product_backlog ); //标红的为输出参数,将带回值,下同
//每一次while 循环为一次迭代
while (!is_empty(product_backlog)) {
run_sprint_planning_meeting(product_backlog, velocity, &sprint_backlog);
//每一次for循环为一个工作日
for(num_of_day = 1; num_of_day <= Sprint_Length; num_of_day ++){
run_daily_scrum_meeting(&sprint_burndown_chart);
do_development_activity(sprint_backlog, &product_increment);
}
run_sprint_review_meeting(product_backlog, product_increment);
run_retrospective_meeting();
update_product_backlog(&product_backlog, &release_burndown_chart);
update_velocity(&velocity);
}
}
|