小编Tee*_*kin的帖子

什么是目前最安全的单向加密算法?

众所周知,单向加密是加密数据库中用户密码的便捷方式.这样,即使数据库管理员也无法知道用户的密码,但必须输入密码,使用相同的算法对其进行加密,然后将结果与数据库中的加密密码进行比较.这意味着确定密码的过程需要大量的猜测和大量的处理能力.

看到计算机变得越来越快,数学家们仍然在开发这些算法,我想知道考虑到现代计算能力和加密技术哪一个是最安全的.

我几乎已经使用MD5几年了,我想知道是否还有更多我应该做的事情.我应该考虑不同的算法吗?

另一个相关问题:字段通常需要多长时间才能使用这样的加密密码?我必须承认我几乎一无所知加密,但我假设MD5哈希(作为一个例子)可能更长,并且可能需要更多的处理能力才能破解.或者字段的长度根本不重要,只要加密密码首先适合它?

security passwords algorithm md5 password-hash

56
推荐指数
3
解决办法
5万
查看次数

Django:检查是否设置了设置变量

这是我想要实现的一个例子.期望的效果是,当且仅当定义了其相关设置时,特定特征才应生效.否则,应禁用该功能.

settings.py:

SOME_VARIABLE = 'some-string'
ANOTHER_VARIABLE = 'another-string'
Run Code Online (Sandbox Code Playgroud)

random_code_file.py:

from django.conf import settings

if settings.is_defined('ANOTHER_VARIABLE'): # <- I need this.
    do_something(settings.ANOTHER_VARIABLE)
else:
    do_something_completely_different()
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我错过了我应该做的任何事情而不是settings.is_defined.

如果这是解决问题的错误方法,我也很乐意听到其他方法.所需效果是自动激活功能,仅在存在相关设置时才会生效.我宁愿避免一些特殊settings.ACTIVE_FEATURES设置或特殊值,如空白字符串或无,以评估功能是否生效.

我想做的最后一件事是使用try/except.我宁愿选择一个空值来表示该功能被排除在外. - 但是如果尝试/除了它确实是首选方法,如果提供详尽的来源或解释,我会将答案标记为正确.事实上,这是任何答案.

简而言之,我需要以正确的方式检查Django中是否定义了设置变量.

提前致谢!

python django django-settings

35
推荐指数
1
解决办法
1万
查看次数

如何在SQL Server中删除触发器?

我需要删除SQL Server中的触发器.看起来它应该很简单,但是因为有一个叫做"删除触发器"的东西,一个在删除时调用的触发器,似乎无法找到有关如何实际删除已存在的触发器的资源.

sql-server triggers

18
推荐指数
2
解决办法
6万
查看次数

清除所有站点的WebBrowser控件的cookie,而不清除IE本身

编辑:据我所知,这个问题没有解决办法,这再次证明了一个人不应该使用C#的WebBrowser.我们在程序开始时发出警告标志,通知用户将清除IE的cookie.

我想要做的简短版本是标题.这是长版本.

我有一个复杂的问题,我相信我会收到很多猜测作为回应.为了将预期但不幸的无用猜测保持在最低限度,让我首先提一下这个问题的解决方案并不简单,所以简单的建议遗憾的是根本没有帮助,即使我很感激努力.

.NET WebBrowser组件基本上是IE本身,因此具有任何类型警告的解决方案几乎肯定不会起作用.我需要做的正是我正在做的事情,即使是一个看似微不足道的警告也会彻底打败这个目的.在探空傲慢的风险,我需要从别人谁真的有深入了解有关.NET web浏览器和/或WinInet的和/或如何使用Windows的底层系统从C#沟通...或如何封装C++代码帮助C#.

也就是说,我不希望有人为我这样做,我发现了一些有希望的提示,这些提示将在本期后面解释.

但首先......我想要实现的是这个.

我有一个Windows.Forms组件,其中包含一个WebBrowser控件.此控件需要:

  1. 清除所有网站的所有Cookie.
  2. 一个接一个地访问几个网站,并记录cookie并正确处理它们.这部分工作正常,所以我没有任何问题.
  3. 冲洗并重复...理论上永远.

现在,这是真正的问题.我需要清除所有这些cookie(对于任何和所有站点),但仅限于WebBrowser控件本身而不是IE正确使用的cookie.这种方法的根本原因当然是.NET WebBrowser控件 IE.但我是一个固执的年轻人,我坚持认为这是可能的,否则!;)

这就是我现在被困住的地方.

仅通过C#以编程方式清除WebBrowser控件的所有cookie是完全不可能的.必须使用DllImport和它附带的所有疯狂的东西.这个块可以用于此目的:

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); 
Run Code Online (Sandbox Code Playgroud)

然后,在实际清除cookie的功能中:

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
Run Code Online (Sandbox Code Playgroud)

然后所有的cookie都被清除了,因此,我很高兴.该程序完全按照预期工作,除了它还清除IE的cookie,这是不允许发生的.

来自StackOverflower的一位同事(如果只是一句话),盛江在评论中提出了一个不同的问题,但没有进一步阐述:

"如果要隔离应用程序的cookie,则需要通过IDocHostUIHandler2 :: GetOverrideKeyPath覆盖Cache目录注册表设置"

我在互联网上浏览了IDocHostUIHandler2和GetOverrideKeyPath,但我不知道如何在C#中使用它们来将cookie与我的WebBrowser控件隔离开来.我对Windows注册表的体验仅限于RegEdit(所以我理解它是一个具有不同数据类型的树结构,但就此而言......例如,我没有深入了解注册表与IE的关系).

这是我在MSDN上挖掘的内容:

IDocHostUIHandler2 docs:http: //msdn.microsoft.com/en-us/library/aa753275%28VS.85%29.aspx

GetOverrideKeyPath docs:http: //msdn.microsoft.com/en-us/library/aa753274%28VS.85%29.aspx

我想我大致知道这些事情的作用,我只是不知道如何使用它们.

.net c# browser cookies internet-explorer

16
推荐指数
1
解决办法
9795
查看次数

停止抑制JavaScript错误

我正在使用Firebug来查看JavaScript错误.但我也在使用jQuery.出于某种原因,我在使用jQuery时从未看到JavaScript错误,这是首先使用jQuery的最大问题之一.

有没有特定的代码显示,试想alert(areareg);在那里areareg未定义或任何形式的JavaScript错误的,而萤火虫不会告诉我这件事.JavaScript将在没有任何警告或通知的情况下失败.在我使用jQuery的任何项目中总是如此,这是我不喜欢jQuery的唯一原因; 因为当出现问题时调试是非常困难的.

出于某种原因,我甚至无法在网上找到这个问题,更不用说回答了.但我想我会在这里尝试一下:

  1. 有没有办法让jQuery停止抑制错误消息?
  2. 我是世界上唯一一个一直遇到jQuery问题的人吗?

编辑:我使用Firefox(与Firebug)和Chrome,我只使用非缩小版本的jQuery.尽管如此,在使用jQuery时,我一生中从未见过任何类型的jQuery错误消息,既无用也无用,实际上也没有正常的JavaScript错误.

javascript jquery firebug

13
推荐指数
1
解决办法
2102
查看次数

SQL Server:最佳的存储时间方式(无日期)

为了完美,这里或多或少是一个.

Microsoft SQL Server仅包含datetime用于存储日期和时间的字段类型.

但是,让我们说我想存储一个营业时间列表,其中日期完全无关紧要.目前我正在使用该datetime类型,然后只显示数据的时间部分.但我有两个问题.

  1. 这似乎效率低下.
  2. 它可能会让未来的开发人员感到困惑,因为他们可能不知道是否在任何地方使用了这个时间.

所以它引出了一个问题; 在没有特定time字段的情况下(如在MySQL中),从00:00到23:59只存储一天中特定时间的最佳方式是什么?

更新:它是SQL Server 2005.(另外,我只是想知道在没有time类型的情况下通常要做什么.)

sql sql-server

11
推荐指数
2
解决办法
8534
查看次数

Python 异步:在做其他事情时等待 stdin 输入

我正在尝试创建一个 WebSocket 命令行客户端,它等待来自 WebSocket 服务器的消息但同时等待用户输入。

每秒定期轮询多个在线资源在服务器上运行良好,(localhost:6789在本示例中运行的那个),但sleep()它使用而不是使用 Python 的正常方法asyncio.sleep(),这是有道理的,因为睡眠和异步睡眠不是一回事,在至少不是在引擎盖下。

同样,等待用户输入和异步等待用户输入不是一回事,但我无法弄清楚如何以异步等待任意秒数的方式异步等待用户输入,所以客户端可以处理来自 WebSocket 服务器的传入消息,同时等待用户输入。

希望的else-clause下面的评论monitor_cmd()解释了我的意思:

import asyncio
import json
import websockets

async def monitor_ws():
    uri = 'ws://localhost:6789'
    async with websockets.connect(uri) as websocket:
        async for message in websocket:
            print(json.dumps(json.loads(message), indent=2, sort_keys=True))

async def monitor_cmd():
    while True:

        sleep_instead = False

        if sleep_instead:
            await asyncio.sleep(1)
            print('Sleeping works fine.')
        else:
            # Seems like I need the equivalent of:
            # line = await asyncio.input('Is this your line? ') …
Run Code Online (Sandbox Code Playgroud)

python-3.x python-asyncio

11
推荐指数
3
解决办法
3765
查看次数

MS-SQL/ColdFusion:神秘数据库错误:对象已关闭

我正在使用ColdFusion与Microsoft SQL Server 2005,有时我收到此错误:

"[Macromedia] [SQLServer JDBC Driver]对象已关闭."

回溯总会导致一个人们期望的SQL查询,即使是没有JOIN或输入参数的简单SELECT命令或者任何花哨的东西.

到目前为止,我听到的唯一解决方案是重新启动"服务",我只能想象它是指SQL Server服务.我已经尝试重新启动SQL Server和ColdFusion服务,但它仍然会随机发生.

(同样重新启动也不是解决方案.在生产环境中,任意页面都不能随意提供任意错误消息.)

当它发生时,它会持续发生几分钟,然后消失并可能在几秒钟或几分钟内恢复.当我开发应用程序的JavaScript部分时,它开始发生,它应该与ColdFusion代码或SQL命令无关.

到目前为止,我的在线搜索一直没有结果.

任何帮助赞赏.

sql-server coldfusion sql-server-2005 coldfusion-9

10
推荐指数
2
解决办法
6234
查看次数

MS Access:如何在DateTime字段中插入NULL

我有一个MS Access数据库(无法忍受),并通过PHP(ODBC)与它通信.

我必须在INSERT语句中包含一个DateTime字段.此字段在Access中未定义为"必需",这意味着它确实可以为NULL,并且实际上Access数据库中的某些行已经为NULL.

我遇到的问题很简单:如何通过SQL插入NULL?我在网上找到的所有结果都是从Visual Basic或C#中解决的,而我在PHP中通过ODBC使用SQL.

我已经尝试过以下方法:

INSERT INTO table_name (datetime_field) VALUES (NULL)
INSERT INTO table_name (datetime_field) VALUES (#NULL#)
INSERT INTO table_name (datetime_field) VALUES ('NULL')
INSERT INTO table_name (datetime_field) VALUES ('#NULL#')
INSERT INTO table_name (datetime_field) VALUES ('')
Run Code Online (Sandbox Code Playgroud)

(我的查询中还有大约30个其他列.)

当我尝试''或NULL时,我得到的确切错误是'条件表达式中的数据类型不匹配'.其他人返回解析错误(可以理解).

请注意,我必须在INSERT语句中包含该字段.该字段具有默认值,但在许多情况下,我正在传输的原始数据具有NULL,在目标数据库中也必须为NULL.

提前致谢!

php ms-access odbc ms-access-2007

8
推荐指数
1
解决办法
2万
查看次数

Python:code.interact(local = locals())其中stdin/stdout不可用

在Python中,以下代码片段将在执行时打开交互式shell.

import code; code.interact(local = locals())
Run Code Online (Sandbox Code Playgroud)

事实证明,这对于在相当多的文档中进行调试非常有用.即使没有调试器,也可以使用shell来导航程序内环境并找出正在发生的事情.到现在为止还挺好.

现在是挑战.

我正在使用的软件(顺便说一下,用Django编写)使用某种调度机制,然后对另一个 Python进程说话,除了编辑代码之外我无法控制.除了我发送给它进行处理的变量之外,我没有任何输入.

但是,由于文档很差,我不知道代码是如何工作的,所以我想用这个code.interact方法来解决问题.

但是这个过程是通过一些特殊的调度软件在后台的某个地方启动的,所以流程不会从Django应用程序转到我想要检查的部分.相反,发送信号和对象,然后在完全不同的过程中在任意时间(10-200ms之间的任何时间)运行.当接收到信号和对象时,stdin/stdout完全不在图片中.

所以我认为不是使用stdin/stdout与之通信,code.interact而是可以通过指定readfunc参数来使用文件句柄或Unix套接字.我通过open()文件和套接字试过这个,但无济于事.

现在我试图仅仅从Django进程本身开始工作,所以即使是调度问题也是不可能的,当交互式shell确实启动时,它立即关闭,既不接受带有命令作为内容的文件,也不接受用于Python命令管道的Unix套接字.

使长话短说; 是否可以code.interact通过除stdin/stdout之外的其他方式调用的交互式shell进行通信?如果是这样,怎么样?

提前致谢.

python unix django scheduler unix-socket

7
推荐指数
1
解决办法
3446
查看次数