问题标签 [encryption]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 加密密码
加密密码的最快且安全的方法是什么(最好使用 PHP),无论您选择哪种方法,它是否可移植?
换句话说,如果我稍后将我的网站迁移到不同的服务器,我的密码会继续有效吗?
正如我被告知的那样,我现在使用的方法取决于服务器上安装的库的确切版本。
.net - 如何将 SSL 添加到使用 httplistener 的 .net 应用程序 - 它*不会*在 IIS 上运行
最近的粗体编辑
我正在使用 .netHttpListener
类,但我不会在 IIS 上运行此应用程序,也不会使用 ASP.net。这个网站描述了实际使用什么代码来实现与 asp.net 的 SSL,并且这个网站描述了如何设置证书(虽然我不确定它是否只适用于 IIS)。
类文档描述了各种类型的身份验证(基本、摘要、Windows 等)——它们都没有提到 SSL。它确实说如果使用 HTTPS,则需要设置服务器证书。这将是一个单行属性设置并HttpListener
计算其余部分吗?
简而言之,我需要知道如何设置证书以及如何修改代码以实现 SSL。
虽然在我尝试访问 HTTPS 时没有发生这种情况,但我确实注意到我的系统事件日志中有一个错误 - 源是“Schannel”,消息的内容是:
尝试访问 SSL 服务器凭证私钥时发生致命错误。从加密模块返回的错误代码是 0x80090016。
编辑:
到目前为止采取的步骤
- 在 C# 中创建了一个适用于 HTTP 连接的有效 HTTPListener(例如“ http://localhost:8089/foldername/ ”
- 使用 makecert.exe 创建证书
- 使用 certmgr.exe 添加了要信任的证书
- 使用 Httpcfg.exe 监听测试端口(例如 8090)上的 SSL 连接
- 通过 listener.Prefixes.Add( https://localhost:8090/foldername/ ")将端口 8080 添加到 HTTPListener ;
- 在浏览器中测试 HTTP 客户端连接,例如 ( http://localhost:8089/foldername/ ") 并收到正确的返回
- 在浏览器中测试了一个 HTTPS 客户端连接,例如(http://localhost:8090/foldername/)并收到“数据传输中断”(在 Firefox 中)
- Visual Studio 中的调试表明,当 HTTPS 连接启动时,接收请求的侦听器回调永远不会被命中 - 我看不到任何可以设置断点以更早捕获其他内容的地方。
- netstat 显示监听端口对 HTTPS 和 HTTP 都是开放的。尝试连接后,HTTPS 端口确实会进入 TIME_WAIT。
- Fiddler和HTTPAnalyzer没有捕捉到任何流量,我猜它在这个过程中还远远不够显示在那些 HTTP 分析工具中
问题
- 问题可能是什么?
- 是否有一段.Net 代码我丢失了(这意味着我必须在 C# 中做更多事情,而不是简单地向指向 HTTPS 的侦听器添加一个前缀,这就是我所做的)
- 在某处错过了配置步骤?
- 我还能做些什么来分析问题?
- 系统事件日志中的错误消息是否表明存在问题?如果是这样,它将如何修复?
c# - 为什么密码错误会导致“填充无效,无法删除”?
我需要一些简单的字符串加密,所以我编写了以下代码(这里有很多“灵感” ):
代码似乎工作正常,除了在使用不正确的密钥解密数据时,我在解密字符串的 cs.Close() 行上收到 CryptographicException - “填充无效且无法删除”。
示例代码:
我的问题是,这是可以预期的吗?我原以为用错误的密码解密只会导致无意义的输出,而不是异常。
security - 代理服务器可以缓存 SSL GET 吗?如果没有,响应正文加密就足够了吗?
(||any) 代理服务器可以缓存客户端通过 https 请求的内容吗?由于代理服务器看不到查询字符串或 http 标头,我认为他们看不到。
我正在考虑一个桌面应用程序,由他们公司代理背后的许多人运行。这个应用程序可以访问互联网上的服务,我想利用内置的互联网缓存基础设施进行“读取”。如果缓存代理服务器无法缓存 SSL 传递的内容,那么简单地加密响应的内容是一个可行的选择吗?
我正在考虑通过 http 请求我们希望可缓存的所有 GET 请求,并使用非对称加密对正文进行加密,其中每个客户端都有解密密钥。每当我们希望执行不可缓存的 GET 或 POST 操作时,都将通过 SSL 执行。
c++ - CryptEncrypt 的合适替代品
我们的产品中存在这样一种情况,即长期以来,一些数据作为 SQL 字符串(选择 MS SQL 服务器或任何位置的 sybase SQL)存储在应用程序的数据库中,这些数据是通过 Windows API 函数CryptEncrypt 加密的。 (直接且可解密)
问题是 CryptEncrypt 可以在输出中产生 NULL,这意味着当它存储在数据库中时,字符串操作将在某些时候截断 CipherText。
理想情况下,我们希望使用一种算法,该算法将生成不包含 NULL 的 CipherText,因为这将对现有数据库造成最少的更改(将列从字符串更改为二进制以及处理二进制而不是字符串的代码)并且只需在数据库升级时解密现有数据并使用新算法重新加密。
该算法不需要是最安全的,因为数据库已经处于相当安全的环境中(不是开放网络/互网),但确实需要比 ROT13 更好(我几乎可以在脑海中解密现在!)
编辑:顺便说一句,将密文更改为密文的任何特殊原因?密文似乎使用更广泛......
c# - C# Web 服务中的加密
我正在寻找一种简单的方法来加密我的 C# Web 服务中的肥皂通信。
我正在研究WSE 3.0,但微软似乎放弃了对它的支持,因此使用起来并不简单。
似乎 WCF 可能是一种选择,但我不想从 .NET 2.0 升级。
任何简单直接的加密方法?
java - 如何在 Java 中使用 3DES 加密/解密?
我编写的使用 3DES 在 Java 中对字符串进行编码的每个方法都无法解密回原始字符串。有没有人有一个简单的代码片段可以只编码然后将字符串解码回原始字符串?
我知道我在这段代码的某个地方犯了一个非常愚蠢的错误。到目前为止,这是我一直在使用的:
** 注意,我没有从 encrypt 方法返回 BASE64 文本,我也没有在解密方法中取消 base64 编码,因为我试图查看我是否在拼图的 BASE64 部分中犯了错误。
c# - 以编程方式加密 .NET 中的配置文件
有人可以简要介绍一下如何以编程方式在 .NET 中加密配置文件,最好是在 C# 中。
我想做的是对应用程序的启动进行某种检查,以查看某个部分是否不受保护,如果是,则对其进行加密。这适用于设置和连接字符串。
另外,是否有人可以列出加密提供者的类型以及它们之间的区别。
我不知道在普通 WinForms 应用程序中执行此操作的代码对于在 ASP.NET 中执行此操作是否透明。
encryption - 非网络游戏的安全在线高分列表
我正在玩我正在编写的本地(非网络)单人游戏,我突然想到拥有一个每日/每周/所有时间的在线高分列表(想想 Xbox Live 排行榜)会让游戏更有趣的是,增加了一些(少量)社区和竞争。但是,我担心人们会将这样的功能视为邀请黑客入侵,这会使普通玩家因无法获得的高分而望而却步。
我考虑了防止此类尝试的明显方法(例如公钥/私钥加密),但我已经找到了黑客可以绕过我所有想法的相当简单的方法(从二进制文件中提取公钥,从而发送假加密分数,例如)。
您是否曾经实施过在线高分榜或排行榜?您是否找到了一种合理的防黑客方法来实现这一点?如果是这样,你是怎么做到的?您对黑客攻击有什么经验?
encryption - 这个 Microsoft PDC 挑战的答案是什么?
在今天的 channel9.msdn.com 视频中,PDC 人员发布了破译此代码的挑战:
破译它并赢得一件T恤。(跛脚,我知道,希望免费前往 PDC。)
我注意到这段代码中有一些有趣的模式,比如最后的 332 模式,但我不知道从这里去哪里。他们说答案是文字问题。
关于破译这段代码的任何想法?