Questions tagged «encryption»

对于有关数据加密和解密的问题,这是对数据进行编码以使对手无法读取或篡改数据的过程。有关加密的技术问题(例如算法X如何工作?)不在主题范围内,但可能在我们有关信息安全和/或密码学的姊妹站点中涵盖。

15
如果密码存储在安全的数据库中,为什么还要加密?
我有一个网络服务。现在,我的密码以纯文本格式存储在服务器上的MySQL表中。我知道这不是最佳做法,这就是为什么我正在努力。 如果密码存储在安全的数据库中,为什么还要加密?我意识到,如果有人入侵我的数据库,他们将获得每个人的密码。但是如果有人进入我的数据库,我还有其他问题,例如删除数据。 我能想到的情况是您被黑了。您从几个小时前还原了数据库,一切都很好。但是,如果您的密码是纯文本...小偷拥有所有密码,则必须重置所有密码。麻烦您的用户。 如果密码已加密,则可以还原到以前的数据库。这是正确的想法吗?

13
游戏中的加密内容
我一直想使用加密来防止用户在程序本身之外弄清楚程序中的内容。就像用户可能会发现,在游戏数据中浏览时,从未在游戏中使用过的纹理将成为某种复活节彩蛋的一部分。如果在网上发布,这可能会破坏所有人的利益。 想象一下一个秘密房间,玩家必须在游戏室的安全门上按下正确的数字,如果正确,它将生成正确的解密密钥,然后解密该关卡的一部分并打开门。因此,由于实际上并没有存储密钥,因此即使在浏览游戏数据时也无法访问复活节彩蛋,它是根据用户输入生成的。 这是我想象中的另一个例子。我有一个益智游戏,假设有20个关卡,每个关卡都使用不同的密钥加密。我没有在程序中直接存储解密密钥,从而使某人可以反编译该程序并找到它,而是根据上一个难题的解决方案生成了加密/解密密钥。这样,即使在浏览游戏数据时,玩家也必须在获得有关下一关的任何信息之前实际找出难题。 考虑到谜题解决方案的数量可能少于解密密钥的数量,玩家如果知识渊博,就可以“轻松”进行暴力破解。这实际上是难题的复杂性,在这里不是很重要。虽然我确实在这里发布了有关它的答案 今天有没有做过这样的程序/游戏?在他们的游戏中存储加密内容?如果不是,为什么呢?在商店或国家/地区是否有很多法规和规章制度?有人看到我缺少的明显陷阱吗?忽略诸如用户体验之类的东西,这个主意在我看来似乎很合理,让我很好奇为什么以前从未见过。 编辑:可能不清楚我在说什么,所以这是一个更具体的示例。 假设我有一个函数,它接受20个字符的字符串并生成一个对称密钥,我可以使用该密钥对游戏中的某些内容进行加密/解密。用户获取该内容的唯一方法是知道这20个字符并生成相同的密钥。该密钥从不直接存储,而是根据用户输入即时生成的。这些角色将隐藏在游戏中,可能是书籍,与NPC的对话,甚至可能不在游戏盒背面。 因此,尝试使用2 * 10 ^ 28种可能的组合,人们更有可能会以预期的方式找到内容,而不是通过浏览游戏数据来找到内容。 编辑2:在将内容发送给消费者之前,将使用任意密钥对内容进行加密。此键显然不会随游戏一起提供。给定一系列基于钥匙的线索,他或她将不得不以某种方式将钥匙重新拼凑在一起,并且这些线索在整个游戏或其他地方都是隐藏的。但是,该系统对用户是透明的,因为除非您实际浏览游戏数据,否则您将不知道内容是加密的。 很多人提到,这样做的局限性在于它有一个明显的缺点。一旦一个人弄清楚了,他/她就可以与其他人共享它(如果不是密钥/解决方案,则可以是内容本身)。但是,如果您打算保密,以至于一个人无法解决问题,而人们必须共同解决它,或者您担心自己的复活节彩蛋被隐藏(设计使然),以至于无法解决它。更有可能有人会在代码中找到它,而不是通过玩游戏。然后我认为这可能很好。 我个人建议每场游戏只能使用一次,并且仅用于不影响核心游戏玩法的事物,例如复活节彩蛋,秘密结局。任何谜题都必须如此复杂或被很好地隐藏起来,以使人们放慢脚步,以使加密内容值得,如果这个谜题阻碍了人们的进步,那么没人可能会玩得开心。
45 encryption 

7
是否有任何算法模式可以保护网络上的任何内容,以确保我是第一个创建该内容的人?
几年前,有一位黑客(不记得他是谁)完全披露了给定系统中的漏洞,但为了确保没人对此表示赞赏,他创建了某种PGP密钥。 我当时的理解是,他创建了一个密钥以确保自己是发现它的那个人,但是没有透露自己的真实身份,只是创建了一种机制来证明他是那个创建披露的人。 。 好。我了解算法和密码学的工作原理。但是我仍然不明白如何创建一个密钥来保护网络上公开的给定内容,以证明您是最先创建它的人!这只是言语! 真的有可能吗?确保您可以凭经验证明的过程应该是什么?我是否理解正确,或者可能错过了一些与此案有关的东西? 我希望这个问题足够具体,基本上就是如何保护您在网络上创建的内容(一段,一段代码,一个单词等),并确保您是第一个创建该内容的人。给定上下文。 据我所知,我不知道这是怎么可能的,但是我对是否有可行的方法很感兴趣。在那儿?

4
零知识代码托管?[关闭]
鉴于最近有关政府对在线服务提供商存储的数据进行广泛监视的启示,零知识服务现在非常流行。 零知识服务是其中所有数据都以未存储在服务器上的密钥加密存储的服务。加密和解密完全在客户端进行,并且服务器永远不会看到纯文本数据或密钥。结果,服务提供商无法解密,也无法将数据提供给第三方。 举个例子:SpiderOak可以被视为Dropbox的零知识版本。 作为程序员,我们高度依赖于我们最敏感的数据(我们的代码),并将它们信任特定种类的在线服务提供商:代码托管提供商(如Bitbucket,Assembla等)。我当然在这里谈论私有存储库-零知识的概念对于公共存储库没有意义。 我的问题是: 创建零知识代码托管服务是否存在任何技术障碍?例如,关于流行的版本控制系统(例如SVN,Mercurial或Git)使用的网络协议是否存在某些问题,这将使(或不可能)实现一种方案,其中使用服务器不知道的密钥? 当今是否存在零知识代码托管服务?

4
这种简单的XOR加密通信绝对安全吗?
说爱丽丝和彼得每个人都有一个4GB的USB闪存棒。它们相遇并保存在两个记忆棒上,两个文件名为alice_to_peter.key(2GB)和peter_to_alice.key(2GB),其中包含随机生成的位。他们再也见不到面,而是通过电子方式进行交流。爱丽丝还维护一个名为的变量,alice_pointer而彼得维护一个名为的变量peter_pointer,这两个变量最初都设置为零。 当爱丽丝需要向彼得发送消息时,她会这样做(n消息的第n个字节在哪里): encrypted_message_to_peter[n] = message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n] encrypted_payload_to_peter = alice_pointer + encrypted_message_to_peter alice_pointer += length(encrypted_message_to_peter) (为了获得最大的安全性,可以删除密钥的使用部分) 彼得接收encrypted_payload_to_peter,读取alice_pointer存储在消息开头的内容,然后执行以下操作: message_to_peter[n] = encrypted_message_to_peter[n] XOR alice_to_peter.key[alice_pointer + n] 为了获得最大的安全性,在读取消息后还要擦除密钥的已用部分。 编辑:实际上,使用此简单算法(无完整性检查和身份验证)的这一步骤会降低安全性,请参阅下面的PaŭloEbermann帖子。 当彼得需要向爱丽丝发送消息时,他们用peter_to_alice.key和进行相反的操作peter_pointer。 通过这种简单的模式,他们可以在未来50年中每天在两个方向上发送2GB /(50 * 365)=〜115kB的加密数据。如果他们需要发送更多的数据,则可以使用更大的密钥,例如,使用当今的2TB HD(1TB密钥),则可以在未来50年内每天交换60MB!实践中有很多数据。例如,使用压缩技术可以进行一个多小时的高质量语音通信。 在我看来,攻击者无法在没有密钥的情况下读取加密的消息,因为即使他们拥有一台速度非常快的计算机,用蛮力他们也可以在限制之下获取所有可能的消息,但这是一个天文数字消息,攻击者不知道是实际消息。 我对吗?这个通信方案真的绝对安全吗?如果它是安全的,它是否有自己的名称?XOR加密是众所周知的,但是我正在使用两侧都使用大密钥来寻找这个具体的实际应用程序的名称吗?我很期待这个应用程序是我之前发明的。:-) 注意:如果绝对安全,那就太神奇了,因为使用当今低成本的大型存储设备,进行安全通信要比使用昂贵的量子密码学便宜得多,并且具有同等的安全性! 编辑: 随着存储成本的降低,我认为这在将来会更加实用。它可以永远解决安全通信。今天,您不确定是否有人会在一年后成功地攻击现有密码,并使通常昂贵的实现变得不安全。在沟通发生之前的许多情况下,当双方亲自见面时,就该生成密钥了。我认为这非常适合军事通信,例如,潜艇之间可以具有带有大钥匙的HD,而军事中心可以为每个潜艇配备HD。在日常生活中也很实用,例如控制您的银行帐户,因为创建帐户时会遇到银行等。

4
程序员对美国出口限制的担忧
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 7年前。 在设计和发布必须满足美国密码软件出口限制的软件时,我需要考虑哪些方面? 维基百科说,您可以将各种类别分配给加密软件。出口目的地(例如中国,俄罗斯)也发挥了重要作用。但是我并不真正了解这些限制及其对我工作的影响。 有人可以向我解释吗? 我问是因为如果您尝试发布您的应用程序(例如,在Apple的App Store或Android的Market上),则必须确保您的应用程序符合美国出口限制。并且有许多应用程序提供安全的信息存储,例如密码。 他们是否都已通知政府并要求进行审查?当然,您不知道他们是否这样做。但是他们需要这样做吗?

7
我应该加密数据库中的数据吗?
我有一个客户,我将为此目的做一个有关患者护理,管理患者,咨询,历史记录,日历以及有关此内容的Web应用程序。 问题在于这是敏感数据,患者病史等。 客户坚持要在数据库级别加密数据,但是我认为这会降低Web应用程序的性能。(但也许我不必为此担心) 我已经阅读了有关健康问题的数据保护的法律(葡萄牙),但是对此并不十分明确(我只是问他们这个问题,我在等待他们的回应)。 我已经阅读了以下链接,但是我的问题不同,是否应该加密数据库中的数据。 我在加密数据时预见到的一个问题是,我需要一个密钥,这可能是用户密码,但是我们都知道用户密码的方式(12345等),并生成我必须存储的密钥它在某个地方,这意味着程序员dba,无论可以使用它什么,对此有何想法? 即使向用户密码添加随机盐也无法解决问题,因为我可以随时访问它,因此可以解密数据。
16 php  mysql  encryption 

6
如何向用户保证网站和密码的安全[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在可靠的网站上,我总是看到诸如“所有数据都已加密”或“使用128位加密对所有密码进行加密”之类的声明。但是,我从未遇到过诸如“所有密码都经过哈希处理”的声明。 在我的网站上,将SHA-512(最有可能)使用带有随机盐的哈希后,将所有用户密码存储在数据库中。我想添加一个摘要,以确保用户的密码是安全的,因此不会阻止他们使用我的网站,因为它需要密码。我希望用户感到安全,但是我认为并不是每个人都知道哈希是什么。 我的问题:可以提供一条消息,说“所有密码都是加密且安全的”吗,因为我认为普通用户不会知道哈希和加密之间的区别,并且更可能会因为看到了而感到安全舒适词“加密”?还是我应该提供替代消息? 附带一提,我是加密和密码哈希的新手,我想知道在我启动网站时现在是否足够安全。我不想告诉用户它是否安全。任何信息将不胜感激。谢谢。


3
您在哪里使用ROT13?
我在阅读vim的文档时,发现有一个快捷方式,例如g?w可以使用ROT13转换下一个单词。我也知道您可以将Python文件的编码更改为ROT13。 这是我的问题:为什么?除了像Django FUNserver这样的恶作剧程序外,它似乎没有那么有用。
13 encryption 

2
将关键数据保存在(第三方)数据库中
如何在数据库中保存重要的(隐私方面)用户数据,例如SSN,信用卡号和地址? 方案: 仅保存需要可用的数据。例如,保存了SSN,因为该应用使用SSN来标识特定记录。或信用卡详细信息将被保存,以使一键式交易成为可能。某些此类数据可以加密和保存,但某些数据需要以纯文本格式提供(例如,用于全文搜索)。该应用程序使用第三方托管。 问题: 在HostGator或App Engine等第三方主机上,以纯文本格式(或其他格式)的此类数据的安全性如何? 您是否将此类数据保存在第三方主机上(推荐这种做法)? 您将其存储为纯文本格式还是对此类数据进行加密? 只有那些有资源拥有自己的服务器的公司才能继续构建此类应用程序吗?

2
加密不可逆吗?
我的印象是加密的字符串无法解密,因此原始值将永远丢失。 但是,如果后面的字符串始终等于 “ dominic”(我的名字),那么就不可能有某种逻辑的方式来反转它;因为它不是随机的,也不是基于日期/时间,但是有一种合理的方法吗? 0WrtCkg6IdaV/l4hDaYq3seMIWMbW+X/g36fvt8uYkE= 无论我对“ dominic”(字符串)进行加密的次数是多少,都始终如上。因此,不应该有某种方法来解密这样的字符串吗? 我正在谈论的示例: public string EncryptPassword(string password) { return Convert.ToBase64String( System.Security.Cryptography.SHA256.Create() .ComputeHash(Encoding.UTF8.GetBytes(password))); }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.