Java用字符串生成的md5,sha1作为数据库主键, 去重

原创 2016年06月01日 21:01:55

用处: 长字符串存数据库时, 计算其md5值作为主键, 可以用来去重

术语:
MD5 - 是一种无法解密的加密算法, 因为它本来就不是用来传输数据的, 它仅仅用来生成”摘要” - 对任何字符串都可以加密成一段唯一的固定长度的代码。并且, 原信息的一点点变化就会导致MD5的巨大变化,例如”A BC”和”ABC”(A和B之间多了一个空格)的MD5值差别非常大,而且之间没有任何关系。
SHA1 - SHA-1基于MD5. 对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。

Java官方文档:

including the RSA, DSA, and ECDSA signature algorithms, the DES, AES, and ARCFOUR encryption algorithms, the MD5, SHA-1, and SHA-256 message digest algorithms, and the Diffie-Hellman and ECDH key agreement algorithms.
RSA, DSA, ECDSA等签名算法、DES, AES, ARCFOUR等加密算法、MD5, SHA-1, SHA-256等信息摘要算法、还有Diffie-Hellman和ECDH这样的密钥协商算法。

//TODO

UUID

JDK1.5 java.util.UUID,直接调用即可.

UUID uuid  =  UUID.randomUUID(); 

全球唯一的编码, 可以用作主键,但是不能去重. 因为UUID值随时间变化, 你永远得不到两个一样的UUID值.

UUID(Universally Unique Identifier)全局唯一标识符 - 是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
在Java中生成UUID主要有以下几种方式:

java比较文件相同MD5

public class MD5Filter {           public static String getMd5ByFile(File file) { ...

Java计算字符串和文件的MD5与SHA1

package net.hkh.util; import java.io.FileInputStream; import java.io.IOException; import java.io.Un...

【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(三)

转载自:http://blog.csdn.net/haofeng82/article/details/6768511 最近在看JAVA安全方面的东东。简单地说,安全包括访问控制、数据...

【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(一)

使用MD5/SHA-1对密码进行加密,并验证两个加密后的密码是否相同。 需要使用到 java.security  类 MessageDigest java.lang.Object java.s...

iOS 利用MD5或SHA1加密算法给字符串加密

MD5加密算法多用于文件的验证, 比如说登录密码的匹配就是利用MD5的加密方式,还比如说安卓手机刷ROM包, windows封装系统等为了防止他人对文件进行篡改,都有使用MD5加密对其验证. S...

数据安全,MD5、SHA1加密字符串

本地数据存储的原则: 与安全相关的用户信息(明文->密文) 70年代有了巨大的变化.RSA 公钥(公开的), 私钥(各自不同),加密算法是公开的(穷举)原则: 任何应用程序都不能在本地直接存储与...

前后端演示SHA1,MD5加密登录(带数据库)

SHA1,MD5简介安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digit...

C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)

方法一: //须添加对System.Web的引用 using System.Web.Security;  /// /// SHA1加密字符串 /// /// 源字符串 /...

C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)

方法一: //须添加对System.Web的引用 using System.Web.Security;  /// /// SHA1加密字符串 /// /// 源字符串 /...

Java Base64、AES、SHA1、MD5加密算法

public class DecriptTest { public static String SHA1(String decript) { try { ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java用字符串生成的md5,sha1作为数据库主键, 去重
举报原因:
原因补充:

(最多只允许输入30个字)