[10]サン・リーHaxi SHA1の暗号化
SHA1(英語:セキュアハッシュアルゴリズム1、中国名:セキュアハッシュアルゴリズム1)は、暗号ハッシュ関数である、国家安全保障局(NSA)は、連邦情報処理規格(として公開米国規格協会(NIST)によって設計されFIPS)。
SHA-1を生成することができる160(20バイト)のハッシュ値をメッセージダイジェストと呼ばれ、ハッシュ値は、典型的には40進数の形で提示されます。
** [SHA-1、SHA-0]
、1ビットのサイクリックシフトとの間の差のSHA-1、SHA-0アルゴリズムのみ部分的に圧縮されたメッセージ変換機能。
【のSHA1ハッシュ]
/**
* SHA1
* @param inStr 需要摘要的内容
* @return
*/
public static String sha1Encode(String inStr) {
MessageDigest sha = null;
try {
sha = MessageDigest.getInstance("SHA");
byte[] byteArray = inStr.getBytes("UTF-8");
byte[] md5Bytes = sha.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
}
[小さなデモのSHA1ハッシュ]
のSystem.out.println( "要約のSHA1ハッシュ:" + sha1Encode(STR)) 。
[PS:MD5とSHA1、不可逆的である、識別するように記事の要約判定として使用することができます]
[11]暗号化されたCRC32のハッシュ
[原理]
チェックコードのデータ列に付加され、CRC検査原理は、実際全長P + Rビットのバイナリ列を構成することは= Nであるように、Pビットのバイナリデータシーケンス後にRビットのバイナリチェックコード(シーケンス)に取り付けられています。コンテンツデータシーケンスの間と特定の関係があります。このような1ビットまたはいくつかのビットデータシーケンスエラーなどの理由に干渉が発生した場合、この特定の関係が破壊されます。したがって、この関係を調べることによって、我々は、データの正しさのテストを実現することができます。
[自然] CRCを
モジュロ2除算の余りであり、異なる除数は、CRCのタイプは同じではない、使用します。典型的には、CRCの除数は生成多項式で表されます。表1に示される最も一般的なCRCコード生成多項式。最も一般的に使用されるCRCコード生成多項式と生成多項式の名前
[小さなデモのCRC32ハッシュ]
[PS:ハッシュ暗号化プロセス不可逆的な、ここでは、意味をなすコンテンツファイルとして使用していない暗号化されたコンテンツとしてテキストの一部を取ります]
[暗号化のCRC32ハッシュ]
/**
* 使用CheckedInputStream计算CRC
*/
public static Long getCRC32(String filepath) {
try {
CRC32 crc32 = new CRC32();
FileInputStream fileinputstream = new FileInputStream(new File(filepath));
CheckedInputStream checkedinputstream = new CheckedInputStream(fileinputstream, crc32);
while (checkedinputstream.read() != -1) {
}
checkedinputstream.close();
return crc32.getValue();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 采用BufferedInputStream的方式加载文件
*/
public static long bufferedInputStream(String filepath) {
try {
InputStream inputStream = new BufferedInputStream(new FileInputStream(filepath));
CRC32 crc = new CRC32();
byte[] bytes = new byte[1024];
int cnt;
while ((cnt = inputStream.read(bytes)) != -1) {
crc.update(bytes, 0, cnt);
}
inputStream.close();
return crc.getValue();
}catch (Exception e){
e.printStackTrace();
return 0;
}
}
[テスト]小さなデモ
String path = "D:\\huatu.eapx";
Long ll = getCRC32(path);
System.out.println("使用CheckedInputStream计算CRC得到:" + ll);
Long ll1 = bufferedInputStream(path);
System.out.println("采用BufferedInputStream计算CRC得到:"+ll1);
![](https://s4.51cto.com/images/blog/202004/04/0cbe6d676f3c829013d8bb2ef1d82670.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
【12、ラビット】
ウサギのストリーム暗号、鍵長128、
あなたがキーメッセージの残りの部分を交換する必要がある場合、メッセージの長さにわたって暗号化されたメッセージ264バイトの最大長、すなわち16 TBは、処理されます。それは特別な性能を持つプロセッサプラットフォームの多様で、比較的効率的なストリーム暗号である高セキュリティの暗号化/復号化の速度の一つです。
[テスト]小さなデモ
わずか1
【13、エスケープ】
多くのアプリケーションのスクリプト言語でおり、エスケープ関数は、変換関数のコードです。
ジャバスクリプト?DEPTNAME =試験におけるそのような転送パラメータは、エスケープ再エンコードの最初の「テスト」すること、及びその後送信、復号化する前に、サーバで受信を文字化けしないであろう。
エスケープ一般的でurlencodeのBASE64_ENCODEと同様の機能を伝達するためのURLパラメータが似ています。詳細については、「コード共通でWebプロジェクト」