日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java sha1加密ascii码_请问下面java的Sha1加密在c#中对应要怎么写?

發(fā)布時(shí)間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java sha1加密ascii码_请问下面java的Sha1加密在c#中对应要怎么写? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/**

* 讀取指定文件塊數(shù)據(jù)Sha1

*

* @param fis

* @return

*/

private static MessageDigest calSha1(BufferedInputStream fis) {

MessageDigest sha1 = null;

try {

byte[] buffer = new byte[1024];

int numRead = 0;

int total = 0;

sha1 = MessageDigest.getInstance("SHA-1");

while ((numRead = fis.read(buffer)) > 0) {

sha1.update(buffer, 0, numRead);

total += numRead;

if (total >= BLOCK_SIZE) {//每次最多讀入4M

break;

}

}

} catch (Exception e) {

e.printStackTrace();

}

return sha1;

}

/**

* 獲取hash/etag,根據(jù)File文件計(jì)算hash值

*

* @param file 文件

* @return

*/

public static String getEtagHash(File file) {

String etagHash = null;

BufferedInputStream fis = null;

try {

if (file.exists()) {

byte[] ret = new byte[21];

long blockCount = blockCount(file.length());

fis = new BufferedInputStream(new FileInputStream(file));

if (blockCount <= 1) { // 文件塊數(shù)小于等于1塊

MessageDigest sha1 = calSha1(fis);

if (null != sha1) {

byte[] input = sha1.digest();

ret[0] = BYTE_LOW_4;

for (int i = 0; i < 20; ++i) {//SHA1算法位20字節(jié)

ret[i + 1] = input[i];

}

}

} else {//將所有sha1值按切塊順序拼接

byte[] rec = new byte[(int) blockCount * 20];

ret[0] = BYTE_OVER_4;

int i, cnt = 0;

for (i = 0; i < blockCount; i++) {//每塊文件分別計(jì)算sha1

MessageDigest sha1 = calSha1(fis);

if (null != sha1) {

byte[] tmp = sha1.digest();

for (int j = 0; j < 20; j++) {

rec[cnt++] = tmp[j];

}

}

}

MessageDigest sha1 = MessageDigest.getInstance("SHA-1");//對拼接好的數(shù)據(jù)再做sha1計(jì)算

sha1.update(rec, 0, (int) blockCount * 20);

byte[] tmp = sha1.digest();

for (i = 0; i < 20; ++i) {//在最前面拼上單個(gè)字節(jié),值為0x96

ret[i + 1] = tmp[i];

}

}

etagHash = EncodeUtils.urlsafeEncodeString(ret);

} else {

System.out.println("File[" + file.getAbsolutePath() + "] Not Exist,Cannot Calculate Hash!");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (fis != null) {

fis.close();

fis = null;

}

} catch (IOException e) {

e.printStackTrace();

}

}

return etagHash;

}

總結(jié)

以上是生活随笔為你收集整理的java sha1加密ascii码_请问下面java的Sha1加密在c#中对应要怎么写?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女视频黄色 | 女人十八岁毛片 | 久久久999成人 | 久久999| 久久波多野 | 久久av无码精品人妻出轨 | 中文字幕在线播出 | 欧美亚洲色综久久精品国产 | 69xx国产 | www.jizzjizz| 亚洲欧洲日韩 | 蜜桃在线一区二区 | 久久精选 | 午夜激情视频在线 | 污片网址 | sm捆绑调教视频 | 波多野在线 | 欧美另类xxxx野战 | 亚洲男女激情 | 视频在线一区 | 欧美亚洲精品天堂 | 特级淫片裸体免费看 | 久久综合色网 | 成人激情电影在线观看 | 日韩精选av | 成人免费无遮挡无码黄漫视频 | 亚洲 小说区 图片区 都市 | 无码av天堂一区二区三区 | 人操人操| 国产精品一区二区三区免费 | 国产黄色高清视频 | 欧美人xxxx | 日韩一区二区三区在线观看 | 中文字幕专区 | 天天干干干| 开心激情综合网 | 秋霞影院一区二区 | 国产福利一区二区 | 亚洲性少妇 | 国产成人无码精品久久 | 九色视频91 | 九九热国产 | 视频在线观看电影完整版高清免费 | 六月天综合网 | 封神榜二在线高清免费观看 | 国产乡下妇女做爰 | 中文字幕在线看高清电影 | 艳妇臀荡乳欲伦交换h漫 | 欧美片在线观看 | 91搞| 欧美xo影院 | 日韩精品免费在线观看 | 免费色网| 99re久久 | 欧美成人自拍视频 | 黄色免费网站观看 | 亚洲1区 | 超碰在线中文字幕 | 丁香啪啪| 欧美亚洲影院 | 夜夜草| 国产剧情av在线播放 | xxxx日本高清 | 海角社区id | 天堂网一区二区三区 | 国产三级在线免费观看 | 久久综合操 | 日本一二三不卡视频 | 性生交生活片1 | www.蜜臀av| 色老二导航 | 亚洲精品tv | 一区二区欧美在线观看 | 日韩精品999| 亚洲伦理在线观看 | 性色视频在线观看 | 成人av网址在线观看 | 亚洲视频免费 | 国产嫩草在线观看 | 国产精品久久久久久亚洲av | 欧美成人乱码一二三四区免费 | 美女露胸露尿口 | 国产中文字幕二区 | 国产a一区| 在线欧美一区 | 美女搞黄视频网站 | 午夜蜜桃视频 | 美国特色黄a大片 | 99九九精品视频 | 欧美一区二区在线观看视频 | 总裁憋尿呻吟双腿大开憋尿 | 激情欧美综合 | 精品久久久久久久久久久aⅴ | 婷婷综合一区 | 国产叼嘿视频 | 国产成人无码www免费视频播放 | 欧美交换国产一区内射 | 午夜免费福利影院 | av动漫免费看 |