zoukankan      html  css  js  c++  java
  • 在sql中使用了 hashbytes 函数

    在做项目的时候,在sql中使用了hashbytes函数,运用md5算法去加密一密码。代码如下

      DECLARE @psw nvarchar(20)
      SET @psw = 'admin'
      SELECT hashbytes('md5',@psw)

      输出结果:0x19A2854144B63A8F7617A6F225019B12 前面的 0x 是16进制的意思。

      现在改变一下变量@psw的类型

      DECLARE @psw varchar(20)
      SET @psw = 'admin'
      SELECT hashbytes('md5',@psw)

      输出结果:0x21232F297A57A5A743894A0E4A801FC3

      数据类型的不同得到了不同结果。

    总结:实际上,使用nvarchar、varchar、nchar、char类型,进行加密的,得到结果都是不同的。

    原因是:这些变量的实际存储大小都是不同的。

    额外知识:

    varchar(n)
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

    nvarchar(n)
    包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。
    char:
    固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
    nchar:
    固定长度的 Unicode 数据,最大长度为 4,000 个字符。
  • 相关阅读:
    G-sensor驱动分析
    写i2c_client驱动的两种方式
    TP分析
    JAVA基础知识要点
    springboot-线程池简单使用
    java 实现好看的图形验证码
    正则表达式校验15/18位生份证-JAVA版
    springboot2.X集成HttpClient 发送HTTPS 请求
    linux-修改时区时间
    springboot2.X 在项目启动后执行一段自定义代码
  • 原文地址:https://www.cnblogs.com/xiaonanmu/p/4252918.html
Copyright © 2011-2022 走看看