程序设计

专业和发烧友程序员的问答

8
@synthesize到底是做什么的?
我看过以下代码: //example.h MKMapView * mapView1; @property (nonatomic, retain) MKMapView * mapView; //example.m @synthesize mapView = mapView1 mapView和之间是什么关系mapView1?是否为创建了set和get方法mapView1?

11
Java中的函数指针
这可能是常见且琐碎的事情,但我似乎很难找到具体答案。在C#中,有一个委托的概念,它与C ++中的函数指针紧密相关。Java中是否有类似的功能?鉴于缺少指针,最好的方法是什么?需要明确的是,我们在这里谈论头等舱。

15
从解决方案中删除nuget包还原
我将最近的nuget软件包还原功能添加到使用“启用NuGet软件包还原”的解决方案中:http ://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages 但是它损坏了我的构建服务器,并且我没有时间修复它,因此我想删除它。据我所知,这是没有选择的,因此我从所有* .csproj文件中手动删除了以下行: <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 现在的问题是,每次我的* .csproj文件签出或打开我的解决方案时,该行都会自动再次添加,如果我不小心在:( 有什么想法可以将其永久删除吗? 更新:尽管下面的答案仍然存在,但在打开解决方案时仍然会出现问题,有人遇到同样的问题吗?

15
java.lang.IllegalArgumentException:视图未附加到窗口管理器
我有一个活动,它将启动AsyncTask并在操作期间显示进度对话框。声明该活动不能通过旋转或键盘滑动来重新创建。 <activity android:name=".MyActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation" > <intent-filter> </intent-filter> </activity> 任务完成后,我关闭对话框,但是在某些电话(框架:1.5、1.6)上会引发此类错误: java.lang.IllegalArgumentException: View not attached to window manager at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:356) at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:201) at android.view.Window$LocalWindowManager.removeView(Window.java:400) at android.app.Dialog.dismissDialog(Dialog.java:268) at android.app.Dialog.access$000(Dialog.java:69) at android.app.Dialog$1.run(Dialog.java:103) at android.app.Dialog.dismiss(Dialog.java:252) at xxx.onPostExecute(xxx$1.java:xxx) 我的代码是: final Dialog dialog = new AlertDialog.Builder(context) .setTitle("Processing...") .setCancelable(true) .create(); final AsyncTask<MyParams, Object, MyResult> task = new …
148 android 

12
ConcurrentHashMap与同步HashMap
是用什么包装类之间的差异SynchronizedMap上,HashMap和ConcurrentHashMap? 它只是能够HashMap在迭代(ConcurrentHashMap)的同时进行修改吗?
148 java  core 

18
如何编写可扩展的基于Tcp / Ip的服务器
我正处于设计阶段,正在编写一个新的Windows Service应用程序,该应用程序接受TCP / IP连接以实现长期运行的连接(即,这不像HTTP那样存在许多短连接,而是客户端连接并保持连接数小时或数天,或者甚至几周)。 我正在寻找有关设计网络体系结构的最佳方法的想法。我将需要为该服务启动至少一个线程。我正在考虑使用Asynch API(BeginRecieve等),因为我不知道在任何给定时间我将连接多少个客户端(可能是数百个)。我绝对不想为每个连接启动线程。 数据主要从我的服务器流出到客户端,但是有时会从客户端发送一些命令。这主要是一个监视应用程序,其中我的服务器定期向客户端发送状态数据。 关于使此功能尽可能可扩展的最佳方法有何建议?基本的工作流程?谢谢。 编辑:明确地说,我正在寻找基于.net的解决方案(如果可能,请使用C#,但任何.net语言都可以使用) 赏金注意:要获得赏金,我希望得到的不仅仅是一个简单的答案。我需要一个可行的解决方案示例,作为指向我可以下载的内容的指针或内联的简短示例。并且必须基于.net和Windows(任何.net语言都可以接受) 编辑:我要感谢大家给出了很好的答案。不幸的是,我只能接受一个,而我选择接受更为著名的Begin / End方法。Esac的解决方案可能会更好,但是它仍然很新,以至于我不确定它会如何工作。 我赞成所有我认为不错的答案,但愿我能为你们做更多。再次感谢。
148 c#  .net  networking  tcp  scalability 

7
SHA-1是否安全存储密码?
结论: SHA-1与任何其他对原像攻击的攻击一样安全,但是它易于计算,这意味着更容易进行暴力破解或字典攻击。(对于SHA-256之类的后继者也是如此。)根据情况的不同,散列函数的设计成本较高(例如bcrypt),可能是更好的选择。 有些人大声疾呼诸如“ SHA-1损坏”之类的言论,所以我试图理解这到底意味着什么。假设我有一个SHA-1密码哈希数据库,并且攻击者拥有最先进的SHA-1破坏算法,并且拥有100,000台机器的僵尸网络可以访问它。(对10万台家用计算机进行控制将意味着它们每秒可以执行约10 ^ 15次操作。)他们需要多少时间 找出任何一个用户的密码? 找出给定用户的密码? 找出所有用户的密码? 找到一种以用户身份登录的方法? 找到一种以特定用户身份登录的方法? 如果密码过大,该如何更改?加盐的方法(前缀,后缀或两者,或诸如xor-ing之类的更复杂的东西)是否重要? 经过谷歌搜索后,这是我目前的理解。如果我误解了一些内容,请纠正答案。 如果没有盐,彩虹攻击将立即找到所有密码(极长的密码除外)。 如果有足够长的随机盐,找出密码的最有效方法是蛮力攻击或字典攻击。碰撞和前映像攻击都无法帮助您找到实际的密码,因此,针对SHA-1的加密攻击没有帮助。甚至使用什么算法都没关系-甚至可以使用MD5或MD4,并且密码也一样安全(因为计算SHA-1散列的速度较慢,所以存在细微差别)。 为了评估“同样安全”的安全性,我们假设一次sha1运行需要1000次操作,并且密码包含大写,小写和数字(即60个字符)。这意味着攻击者每天可以测试10 15 * 60 * 60 * 24/1000〜= 10 17个潜在密码。对于蛮力攻击,这意味着要在3小时内测试所有密码,最多9个字符,一周最多测试10个字符,一年最多测试11个字符。(每个其他字符要花60倍的时间。)字典攻击的速度要快得多(即使攻击者只有一台计算机,也可以在数小时内将其删除),但只能找到弱密码。 要以用户身份登录,攻击者无需找出确切的密码;找到一个导致相同哈希值的字符串就足够了。这称为第一次原像攻击。据我所知,没有针对SHA-1的原像攻击。(A暴力破解攻击需要2点160的操作,这意味着我们的理论,攻击者需要10 30年,把它关闭。的理论可能性的限制是大约2个60操作,在该攻击将需要几年的时间。)有原像攻击反对SHA-1的简化版本(效果可忽略不计)(对于使用44步而不是80步的简化SHA-1,攻击时间从2160次操作减少到2157次)。有一些针对SHA-1的冲突攻击,这在理论上是可行的(我发现的最好的攻击时间从2 80降至2 52),但是对于密码哈希(即使不加盐)也没有用。 简而言之,使用SHA-1存储密码似乎非常安全。我错过了什么? 更新: Marcelo指出了一篇文章,其中提到了2 106次操作中的第二次原像攻击。(编辑:正如Thomas所解释的那样,此攻击是一种假想的构造,不适用于现实情况。)不过,我仍然看不到这对使用SHA-1作为关键派生函数的危险。通常有充分的理由认为碰撞攻击或第二原像攻击最终可以转变为第一原像攻击吗?
148 cryptography  hash  sha1 

5
将CookieContainer与WebClient类一起使用
我以前在CookieHttpContainer和HttpWebRequest和HttpWebResponse会话中使用过,但是现在,我想在WebClient中使用它。据我了解,没有像HttpWebRequests(request.CookieContainer)那样的内置方法。如何在CookieContainer中从WebClient收集cookie? 我对此进行了搜索,发现了以下示例: public class CookieAwareWebClient : WebClient { private readonly CookieContainer m_container = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); HttpWebRequest webRequest = request as HttpWebRequest; if (webRequest != null) { webRequest.CookieContainer = m_container; } return request; } } 这是最好的方法吗?

23
如何在Jquery UI对话框中实现“确认”对话框?
我尝试使用JQuery UI对话框替换丑陋的javascript:alert()框。在我的场景中,我有一个项目列表,在每个项目旁边,我将为每个项目都具有一个“删除”按钮。伪html设置将如下所示: <ul> <li>ITEM <a href="url/to/remove"> <span>$itemId</span> <li>ITEM <a href="url/to/remove"><span>$itemId</span> <li>ITEM <a href="url/to/remove"><span>$itemId</span> </ul> <div id="confirmDialog">Are you sure?</div> 在JQ部分中,在准备好文档后,我首先将div设置为带有必要按钮的模式对话框,然后将要触发的那些“ a”设置为确认后再删除,例如: $("ul li a").click(function() { // Show the dialog return false; // to prevent the browser actually following the links! } 好,这是问题所在。在初始化期间,对话框将不知道是谁(项目)启动它,也不知道项目ID(!)。我如何设置那些确认按钮的行为,以便在用户仍然选择“是”的情况下,将通过该链接将其删除?

9
Eclipse中是否有快捷方式来重新运行最新启动的程序?
我用Eclipse做的最常见的事情之一是重新运行最后一个程序。我可以通过运行->运行历史记录-> [最高项目]来实现。 是否有执行此操作的快捷键? 我知道 CTRL +,F11但这对我不起作用。仅当当前活动的类(我正在编辑其源代码的类)没有main方法时,它才会启动最新程序。如果这样做,它将使用此类作为程序的入口点,而不是“运行历史记录”列表中的那个。
148 eclipse  ide 

11
接口中的构造函数?
我知道不可能在接口中定义构造函数。但是我想知道为什么,因为我认为这可能非常有用。 因此,您可以确定为该接口的每种实现定义了类中的某些字段。 例如,考虑以下消息类: public class MyMessage { public MyMessage(String receiver) { this.receiver = receiver; } private String receiver; public void send() { //some implementation for sending the mssage to the receiver } } 如果为该类定义一个接口,以便我可以有更多实现消息接口的类,则只能定义send方法,而不能定义构造函数。那么,如何确保此类的每个实现都确实有一个接收者集?如果我使用类似的方法,setReceiver(String receiver)则不能确定是否真的调用了该方法。在构造函数中,我可以确保这一点。
148 java  interface 

5
为什么此代码容易受到缓冲区溢出攻击?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } 这段代码很容易受到缓冲区溢出攻击,因此我试图找出原因。我认为这与len被声明为a short而不是a 有关int,但我不确定。 有任何想法吗?



9
创建RPM文件的最低要求是什么?
我只想创建一个RPM文件来分发我的Linux二进制文件“ foobar”,它只有几个依赖项。它有一个配置文件/etc/foobar.conf,应该安装在/ usr / bin / foobar中。 不幸的是,RPM的文档长达 27章,我真的没有一天可以坐下来阅读本文,因为我还忙于为其他平台制作.deb和EXE安装程序。 创建RPM的绝对最低要求是多少?假设foobar二进制文件和foobar.conf位于当前工作目录中。
148 rpm  rpmbuild 

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.