精华内容
下载资源
问答
  • 我需要PHP中存储MySQL中加密但可恢复(通过管理员)密码. AFAIK,最直接方法使用openssl_public_encrypt(),但我不确定需要什么列类型.我可以根据密钥大小和输入对加密输出最大长度做出任何可靠判断吗?...

    我需要在

    PHP中存储MySQL中加密但可恢复的(通过管理员)密码. AFAIK,最直接的方法是使用openssl_public_encrypt(),但我不确定需要什么列类型.我可以根据密钥的大小和输入对加密输出的最大长度做出任何可靠的判断吗?

    或者我被迫使用一个巨大的领域(例如BLOB),并希望它一直有效?

    最佳答案 openssl_public_encrypt函数将可以加密的数据大小限制为密钥的长度,如果使用填充(推荐),则会丢失额外的11个字节.

    However, the PKCS#1 standard, which OpenSSL uses, specifies a padding scheme (so you can encrypt smaller quantities without losing security), and that padding scheme takes a minimum of 11 bytes (it will be longer if the value you’re encrypting is smaller). So the highest number of bits you can encrypt with a 1024-bit key is 936 bits because of this (unless you disable the padding by adding the OPENSSL_NO_PADDING flag, in which case you can go up to 1023-1024 bits). With a 2048-bit key it’s 1960 bits instead.

    当然,你永远不应该禁用填充,因为这将使相同的密码加密到相同的值.

    因此对于1024位密钥,最大密码输入长度为117个字符.

    对于2048位密钥,它是245个字符.

    我不是100%确定输出长度,但是一个简单的跟踪应该确认这一点,输出是一个简单的keylength函数,所以对于一个2048位的密钥,我怀疑它是256字节.

    您应该使用具有所需长度的二进制字符串来存储密码.

    出于速度原因,最好在场地上使用有限长度的索引.

    不要使用blob(!),因为这会减慢速度,没有任何好处.

    CREATE TABLE user

    id unsigned integer auto_increment primary key,

    username varchar(50) not null,

    passRSA binary(256), <

    index ipass(passRSA(10)) <

    ) ENGINE = InnoDB

    向索引添加额外的字节只会减慢速度并增加索引文件,但没有任何好处.

    展开全文
  • 这里混API,mysql_*并且mysqli_*不混合。您应该坚持使用mysqli_(无论如何看起来还是这样),因为mysql_*不赞成使用函数,并且PHP7中将其完全删除了。...您整个应用程序中的所有属性都必须设置为UTF-8 将文档...

    您在这里混的API,mysql_*并且mysqli_*不混合。您应该坚持使用mysqli_(无论如何看起来还是这样),因为mysql_*不赞成使用函数,并且在PHP7中将其完全删除了。

    您的实际问题是某个地方的字符集问题。这里有一些指针可以帮助您为应用程序获取正确的字符集。这涵盖了开发PHP / MySQL应用程序时可能会遇到的大多数一般问题。

    您整个应用程序中的所有属性都必须设置为UTF-8 将文档另存为UTF-8(不带BOM)(如果您使用的是Notepad ++,则为Format-> Convert to UTF-8 w/o BOM) PHP和HTML中的标头都应设置为UTF-8

    HTML(内部标签):

    PHP(在文件顶部,在任何输出之前):

    header('Content-Type: text/html; charset=utf-8'); 连接到数据库后,将连接对象的字符集设置为UTF-8,如下所示(直接在连接之后)

    mysqli_set_charset($conn, "utf8"); /* Procedural approach / $conn->set_charset("utf8"); / Object-oriented approach / 这是针对的mysqli_,还有与mysql_*和PDO 类似的(请参见此答案的底部)。

    还要确保将数据库和表设置为UTF-8,您可以像这样进行操作:

    ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; (任何已存储的数据都不会转换为正确的字符集,因此您需要使用干净的数据库来执行此操作,如果字符损坏则需要在执行此操作后更新数据)。

    如果使用json_encode(),则可能需要应用该JSON_UNESCAPED_UNICODE标志,否则它将特殊字符转换为等效的十六进制字符。 请记住,一切的代码需要被设置为UFT-8的整条管线,否则你可能在你的应用体验破字。

    除了此列表之外,可能还有一些具有用于指定字符集的特定参数的函数。手册将告诉您这一点(例如htmlspecialchars())。

    还有一些针对多字节字符的特殊功能,例如:strtolower()不会降低多字节字符,因为您必须使用它mb_strtolower(),请参见此实时演示。

    注1:请注意,其某处标记为utf-8(带破折号),某处标记为(无破折号utf8)。重要的是要知道什么时候使用,因为它们通常是不可互换的。例如,HTML和PHP需要utf-8,而MySQL则不需要。

    注2:在MySQL中,“字符集”和“排序规则”不是同一回事,请参见编码和排序规则之间的区别?。两者都应设置为utf-8;通常排序规则应为utf8_general_ci或utf8_unicode_ci,请参见UTF-8:常规?斌吗 Unicode?。

    注意3:如果您使用表情符号,则需要在数据库和连接中使用utf8mb4字符集而不是standard 来指定MySQL utf8。HTML和PHP将只有UTF-8。

    使用mysql_和PDO 设置UTF-8

    PDO:这是在对象的DSN中完成的。注意该charset属性,

    $pdo = new PDO("mysql:host=localhost;dbname=database;charset=utf8", "user", "pass"); mysql_:这样做非常类似于mysqli_*,但是它没有将连接对象作为第一个参数。

    mysql_set_charset('utf8');来源:stack overflow

    展开全文
  • MySQL中存储日期,请使用STR_TO_DATE()方法-insertintoyourTableNamevalues(STR_TO_DATE('yourDate','%d/%m/%Y'));让我们首先创建一个表-createtableDemoTable(AdmissionDatedate);使用插入命令表中插入记录-...

    要在MySQL中存储日期,请使用STR_TO_DATE()方法-insert into yourTableName values(STR_TO_DATE('yourDate', '%d/%m/%Y'));

    让我们首先创建一个表-create table DemoTable

    (

    AdmissionDate date

    );

    使用插入命令在表中插入记录-insert into DemoTable values(STR_TO_DATE('10/01/2013', '%d/%m/%Y'));

    insert into DemoTable values(STR_TO_DATE('31/01/2015', '%d/%m/%Y'));

    insert into DemoTable values(STR_TO_DATE('23/04/2019', '%d/%m/%Y'));

    insert into DemoTable values(STR_TO_DATE('01/03/2019', '%d/%m/%Y'));

    使用选择命令显示表中的记录-select *from DemoTable;

    这将产生以下输出-+---------------+

    | AdmissionDate |

    +---------------+

    | 2013-01-10    |

    | 2015-01-31    |

    | 2019-04-23    |

    | 2019-03-01    |

    +---------------+

    4 rows in set (0.00 sec)

    展开全文
  • in_set函数使用方法很多时候我们设计数据库时有这种情况,比如:有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等现在有篇文章他既是 头条,又是热点,还是图文,type以...

    MySQL 的 find_in_set函数使用方法

    很多时候我们在设计数据库时有这种情况,比如:

    有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等

    现在有篇文章他既是 头条,又是热点,还是图文,

    type中以 1,3,4的格式存储.

    那们我们如何用sql查找所有type中有4图文标准的文章呢,

    这就要我们的find_in_set出马的时候到了.

    先看mysql手册中find_in_set函数的语法:

    FIND_IN_SET(str,strlist)

    如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N

    之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则

    FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0

    。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

    mysql> SELECT FIND_IN_SET('b','a,b,c,d');

    -> 2

    用起来很简单

    就以上面我说到的情况来举例:

    以下为引用的内容:

    select * from article where FIND_IN_SET('4',type)

    延伸用法-可以根据指定的顺序排序比如:

    select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5');

    展开全文
  • 存储过程定义存储过程一种在数据库中存储复杂程序,以便外部程序调用一种数据库对象。其在思想上与面向对象编程中函数定义与调用一致,存储过程只是SQL语言维度上封装与运用。存储过程优缺点优点:1) ...
  • 应朋友要求,写个存储过程说明,本篇比较简单,...如果使用的是PL/SQL,执行后会output打印my first execute,那么这里就有了第一个功能dbms_output.put_line,output里面打印结果,另外还有dbms_output.put...
  • find_in_set 函数使用方法个例子来说:有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13 等等 。现在有篇文章他既是 头条,又是热点,还是图文,type以 1...
  • 关于MySQL数据库中索引的详细介绍发布时间:2020-04-08 11:00:23来源:亿速云阅读:21作者:小新今天小编给大家分享的是关于MySQL数据库中索引的详细介绍,很多人都不太了解,今天小编为了让大家更加了解MySQL数据库...
  • 下面一个模式示例:useruser_id (PK)username (char)password (char)security_question_id (FK)security_answer (char)email_address (char)security_questionsecurity_question_id (PK)question (char)keyword...
  • 我想从Web服务中获取所有这些数据并预先保存在数据库中.我试图找出最佳关系数据库设计来保存此类数据.我要避免冗余数据,也要避免提供最佳性能设计.我知道,关系数据库不是为此最佳选择,但是这我目前不禁要...
  • 【其它】请将计算机界面设计照片提交~【单选题】下列______ 表示表单元素中的下拉框元素。 (2.0分)【简答题】编写一个借口程序,其中定义一个计算体积方法。然后,b设计应用程序实现这个接口,分别计算矩形柱面...
  • 1. oracle数据库,可以用DBMS_OBFUSCATION_TOOLKIT.MD5 ( input... utl_raw.cast_to_raw('预置密码'))来得到一个MD5加密后的密码:SQL如下:-----这里得到的md5值是大写的,如果数据库中存储的是小写,需要再用lower...
  • 做一个bug排查时发现,代码写的是模糊查询,但是就是实现不了,后来发现编码格式有问题,现将三种utf8格式列举如下: mysql数据库编码格式utf8_general_ci、utf8_bin、utf8_general_cs区别: utf8_bin将字符串...
  • 并且可以处理程序定义解决这些问题办法。这种方式可以提前预测可能出现问题, 并提出解决办法。这样可以增强程序处理问题能力,避免程序异常停止。MySQL中都通过DECLARE关键字来定义条件和处理程序。本...
  • (1) 存储过程一个程序代码,存储在数据库中 (2) 作用 1° 接受输入参数,并以输出参数格式向调用过程__返回多个值__ 2° 包含用于在数据库中执行操作(包括调用其他过程)编程语句 3° 向调用过程返回状态值,...
  • 及 htmlentities ENT_QUOTES,'utf-8'结果: 即使是这样 插入数据库汉字仍然在数据库中看到的是乱码,但是页面上显示的好的。原因及解决方法: 原因可能是mysql在安装的时候的设置不对。 解决方法,你无法改变供...
  • SQLite最大特点你可以把各种类型数据保存到任何字段,而不用关心字段声明数据类型什么。 例如:可以Integer类型字段存放字符串,或者布尔型字段存放浮点数,或者字符型字段存放日期型值...
  • mysqlin可以包括指定的数字,而find_in_set()用于特定的数据类型,下面我来给大家介绍...有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13 等等 。 现在有篇文章他既是
  • 我们日常开发运维平台,如果公司对安全要求比较高,一般数据库中都存储的用户加密后的密码,这样即使某些人侥幸得到数据库权限,也无法得知用户明文密码,这主要从安全角度来考虑的,那如何将用户输入的...
  • 现在主要想给大家分享下,我公司实习时使用hive sql获取数据过程中的一些注意点:1、将字符串日期转为整型日期hive数据库中存储的时间string类型的,但是我们取数的时候,习惯把字符串型的日期转换为整型的...
  • 动态表首先要说明的是动态表,这个表 OSChina 数据库中对应的表名是 osc_opt_logs ,从这个名字能看出意思是“操作记录表”,字段如下:字段说明:id 主键字段,动态记录的唯一标识user 某人的动态obj_...
  • 本章介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 为了实现事务原子性,MySQL数据库InnoDB存储引擎,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务原子性(Atomicity)事务...
  • image1 | 100 || tt_image2 | 100 || tt_image3 | 100 |+-----------+----------+3 rows in set (0.00 sec) 看下文件大小,可以看到实际大小排名,LONGTEXT 字段存储的最大,LONGBLOB 字段缩小到一半,最小的是存储...
  • MySQL数据库中有一个存储过程,它只更新一个日期列并返回上一个日期。如果我从MySQL客户机调用这个存储过程,它可以正常工作,但是当我试图使用MySQLdb从Python调用该存储过程时,我似乎无法让它给我返回值。...
  • 引用:百度百科存储过程存储过程(Stored Procedure)在大型数据库系统中,一组为了完成特定功能SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程名字并给出参数...
  • 配置类,我们使用uvm_config_db来存储jelly_bean_if,jelly_bean_env_config和两个jelly_bean_agent_configs。 这篇文章将分析配置数据如何存储和检索。 下面显示了与配置数据库相关类图。 请注意,为了避免...
  • 存储过程以命名方式存储数据库中的 2.优点 a.存储过程以命名数据库对象形式存储于数据库当中 优点很明显:因为代码不保存本地 用户可以任何客户机登录到数据库,并调用或修改代码 ...
  • Mysql数据库-存储过程一、什么是存储过程存储过程其实就是一组为了完成特定功能SQL语句集,经编译后存储在数据库中。【存储过程就是SQL语句集】MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,000
精华内容 6,800
关键字:

在数据库中存储的是_______