Java用字符串生成的md5,sha1作为数据库主键, 去重
来源:互联网 发布:淘宝html5模板 编辑:程序博客网 时间:2024/05/29 09:10
用处: 长字符串存数据库时, 计算其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,sha1作为数据库主键, 去重
- 用字符串作为函数模版的实参
- 记录redis MD5数据库入库去重
- 【经典算法】:用字符串模拟计算器的生成
- 生成UUID作为主键
- 使用C++11新特性,实现用字符串作为switch的case子句
- 使用C++11新特性,实现用字符串作为switch的case子句(转)
- python 用字符串生成词云图
- Java -- JDBC 获取数据库自动 生成的主键值
- java生成MD5串
- 数据库生成 MD5的方法
- JAVA中生成C#中的GUID作为主键
- java拼接字符,数据库字符和数字拼接的字符串作为字段,如ID,主键
- 从Java的keytool中获得 MD5 fingerprint和SHA1
- JAVA计算文件的MD5及SHA1等值
- Java计算字符串和文件的MD5与SHA1
- java自带的MD5、SHA1算法演示
- java 自带的MD5、SHA1算法演示
- HttpURLConnection
- Android开发之利用ViewPager实现导航页和滑动标签页效果
- SparseArray源码解析
- Codeblocks下搭建gtest框架
- 【刷题之路】不使用额外空间交换两个数
- Java用字符串生成的md5,sha1作为数据库主键, 去重
- 为何有了组件, 还要有微服务?
- image圆形图片
- 平台插件化
- Java 中 List 元素排序
- Android调用系统拍照 读取选择的角度
- spring_helloworld
- sql查询重复记录、删除重复记录方法大全
- 不使用中间变量交换两数