草庐IT

mysql - 忽略外键更新的级联?

首先,我在数据库设计方面不是很有经验。我有一张哈希表和ID。添加一组新哈希时,组中的每一行都获得相同的id。如果新组中的任何哈希已经存在于数据库中,则新组和现有组中的所有哈希都会获得一个新的共享ID(在重复哈希时有效地合并ID):INSERTINTOhashes(id,hash)VALUES($new_id,...),($new_id,...)ONDUPLICATEKEYUPDATErepeat_count=repeat_count+1;INSERTINTOhashes_lookupSELECTDISTINCTidFROMhashesWHEREhashIN(...);UPDATEhas

php - 使用 PHP 和 MySQL 生成强大的唯一用户 ID

嗨,堆栈溢出!这是我的第一篇文章...我正在尝试使用加盐的唯一公钥来识别用户。算法-我应该使用uniqid()、sha256、sha512还是其他算法?所有哈希都将被加盐。NIST推荐SHA256,但我更愿意听听其他人的建议。生成-hash(SALT+AUTO_INCREMENT_PK+CREATED_TIMESTAMP)是否足够?更多的熵?我会使用电子邮件,因为它对每个用户都是唯一的,但是用户可以修改他们的电子邮件地址。我还考虑存储signup_email,这样就不必重新计算哈希。MySQL存储-目前,我们的ID是INT(255)auto_increment主键。如前所述,可能有数亿

MySQL 什么时候可以使用 HASH 而不是 BTREE

既然MySQL在创建索引时默认使用BTREE,有没有什么时候可以使用HASH?例如,如果我的表只包含外键,它们只是INTUNSIGNED值。在这种情况下用HASH覆盖BTREE是一个很好的改进吗?不确定这是否重要,但我正在使用InnoDB。 最佳答案 HASH索引类型仅支持MEMORY(又名HEAP)存储引擎。 关于MySQL什么时候可以使用HASH而不是BTREE,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

mysql - 在 MySQL 中生成唯一的 10 个字符的字母数字哈希

我有一个简单的表,其中包含名为"hash"VARCHAR10UNIQUEFIELD的字段现在我想运行一个查询并自动生成字段内的哈希值。问题是散列必须是字母数字,并且必须是10个字符长且唯一。表结构:CREATETABLE`vouchers`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`hash`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`),UNIQUEKEY`hash`(`hash`))ENGINE=MyISAMDEFAULTCHARSET=utf8;所以我需要将哈希插入到哈希字段中,它们应该看起来像随机字母数

mysql - 使用 Rails 查询返回单个字段

我在处理本应如此简单的事情时遇到了麻烦,但我不知道自己做错了什么。我只是想做一个返回单个字段而不是Rails3中的完整记录的查询。模型方法defself.find_user_username(user_id)user_name=User.select("user_name").where(user_id)returnuser_nameend我正在看Rails指南(http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields)它只是说(whereviewable_by,locked=

php - PHP 中的双向加密 - 需要一些指导

我正在开发我的第一个安全购物网站。我们不存储信用卡数据,所以这不是问题。但是,我们的支付网关(authorize.net)确实有交易key和API登录key,我更愿意将其保存在数据库中,而不是硬编码到我的php中。我不知道我们需要巨大的安全性,但我宁愿不要以纯文本形式存储它。我知道sha,但那是单向的。我需要一种方法以半安全格式将值存储在数据库中,然后能够以编程方式“解密”它以便在我的函数中使用。另外一个注意事项是我的网站是托管的,这意味着我可以安装的东西类型有非常严格的限制,因此理想情况下任何解决方案都依赖于标准php安装中包含的东西。谁能指出我正确的方向?我对保护数据还很陌生。编辑

c# - 在 MySQL 数据库上运行迁移时出现 Entity Framework 错误。 "Incorrect usage of spatial/fulltext/hash index and explicit index order"

问题对新安装的MySQL数据库(对SQLServer数据库工作正常)运行迁移时,它在第一个创建表上失败并显示错误:Incorrectusageofspatial/fulltext/hashindexandexplicitindexorder当它尝试运行以下Index时会发生这种情况方法:CreateTable("dbo.AuditLog",c=>new{Id=c.Int(nullable:false,identity:true),Name=c.String(maxLength:1000,unicode:false),What=c.String(maxLength:1000,unicod

mysql - 在 phpMyAdmin 中散列

我有一个mySQL数据库,我正在使用phpMyAdmin访问它。数据库中有表employees,其中包含姓名、地址、电子邮件和密码等字段。最初密码字段只是VARCHAR(20)。但现在我想用SHA-256散列技术散列我的密码。我对数据库没有太多经验,所以我想知道的是-我能否在不影响其他字段或整个表的情况下对所有当前员工的密码进行哈希处理?将来当我在数据库中输入数据(从Web应用程序)时,我应该在哪里编写散列函数来散列密码?即,散列是在前端发生,然后将散列后的密码存储在数据库中,还是密码进入数据库,在那里进行散列然后存储。解决方案和建议表示赞赏。 最佳答案

php - 密码哈希应该以二进制还是十六进制数存储?

我通常以十六进制数存储它,但我意识到如果我在MySQL中以二进制数存储它可以节省一半的空间。如果我决定以二进制形式存储它,有什么我应该注意的问题吗? 最佳答案 您希望存储多少个密码?一半的空间对您来说真的那么重要吗?您可能在应用程序中以十六进制形式表示密码,因此当您对这些密码执行任何操作时,以二进制形式存储它们会增加另一层复杂性和处理开销。我的观点是,您应该以一种方便您使用的方式来存储它们,而不是一种为您节省少量空间的方式。编辑:将做出一些假设并借此机会进一步帮助您。因为你的密码是十六进制的,我假设你没有使用crypt,如果你不是,

用于优化的 MySQL 哈希索引

所以也许这不是菜鸟,但我正在弄乱几张table。我有表A大约45,000条记录我有表B大约150万条记录我有一个问题:updateschema1.tableaainnerjoin(SELECTDISTINCTID,Lookup,IDpart1,IDpart2FROMschema1.tablebWHEREIDpart1isnotNULLANDLookupisnotNULLORDERBYID,Lookup)bUsing(ID,Lookup)seta.Elg_IDpart1=b.IDpart1,a.Elg_IDpart2=b.IDpart2wherea.IDisNOTNULLANDa.Elg