小编Adi*_*ber的帖子

部分密钥验证

这个问题适用于那些有软件保护部分密钥验证技术经验的人.我试图了解PKV如何比其他keygen方案更好,并且在阅读了大量参考文献之后

http://47hats.com/2007/07/26/implementing-a-partial-serial-number-verification-system/

我有一些问题.

基本上,如果我理解正确,PKV背后的想法是不是在客户端检查整个密钥,以便如果有人(即黑客)提出了密钥,你只需要用不同的检查重新编译软件.关键,瞧,假keygen将不再有效.

但我不明白的是,如果在某个时刻有一个keygen,它显然能够解锁至少一个版本的软件,仍然可以在网上找到.所以基本上,你根本就没有避免使用虚假密钥,你只有一个版本的软件可以使用假的keygen而另一个版本没有.

那么它如何优于其他keygen保护技术呢?

encryption licensing cryptography key-generator

9
推荐指数
1
解决办法
2911
查看次数

并行运行不同DStream的多个Spark Streaming作业

我有一个Spark Streaming应用程序,它从多个Kafka主题中读取数据.每个主题都有不同类型的数据,因此需要不同的处理管道.

我最初的解决方案是为每个主题创建一个DStream:

def main(args: Array[String]) { 
    val streamingContext: StreamingContext = ...
    val topics = ...

    for (topic <- topics) {
        val offsets: Map[TopicAndPartition, Long] = ...
        val stream = KafkaUtils.createDirectStream[...](streamingContext, kafkaProperties, offsets, ...)
        configureStream(topic, stream)
    }

    streamingContext.addStreamingListener(new StreamingListener {
        override def onBatchCompleted(batchCompleted: StreamingListenerBatchCompleted) {
            // logic to save offsets after each batch completes
        }
    })

    streamingContext.start()
    streamingContext.awaitTermination()
}


def configureStream(topic: String, stream: DStream[...]) {
    topic match {
        case "first" => stream.map(...).foreachRDD(...)
        case "second" => stream.map(...).foreachRDD(...)
        case "third" => stream.map(...).foreachRDD(...) …
Run Code Online (Sandbox Code Playgroud)

apache-spark spark-streaming

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

如何在C#中立即强制显示器进入省电模式?

我有两台显示器(HP EliteDisplay E190i),两台都连接到两台电脑(2x VGA + DP).
这些显示器也支持DVI,因此我不想使用愚蠢的切换按钮,每次我希望在计算机之间切换时,我都需要浏览显示器的菜单.我以前有笨重的显示器和切换真的很容易,但我不能习惯整个导航的东西 - 它经常让人感到困惑......

所以这是交易 - 我希望能够通过执行命令在计算机之间快速切换.显然这不能直接完成(计算机没有以任何方式相互连接),但是当监视器进入省电模式时(或当操作系统关闭它们时),监视器开始扫描可用输入.这样他们就会锁定另一台计算机并解决问题.

虽然足够的介绍,我已经尝试过这个解决方案并且效果很好,但它并不完美:

  • 它有一个淡出动画,在显示器实际关闭前需要几秒钟
  • 我不得不在上述淡出动画的持续时间内触摸鼠标/键盘,否则它将被取消

我尝试在将监视器发送到睡眠状态之前根据此答案禁用输入,然后在5秒后重新启用它,但这也不起作用,因为:

  • 它要求我使用管理员权限运行应用程序,否则不会阻止输入
  • 即使在使用管理员权限运行时输入被阻止,我仍然可以在淡出动画期间移动鼠标或按键盘上的某些键来取消它(即使指针没有移动,或键盘输入被忽略).

这是我的代码:

[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);

[DllImport("user32.dll")]
private static extern int BlockInput(int fBlockIt);

static void Main()
{
    SendMessage(0xFFFF, 0x112, 0xF170, 2);
    try
    {
        int result = BlockInput(1);
        Console.WriteLine(result);
        Thread.Sleep(5000);
    }
    finally
    {
        BlockInput(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在两台计算机上都使用Windows 7 Enterprise x64.

有没有办法让整个仪式上班?

c# multiple-monitors power-saving

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

与 PrincipalSearcher 相比,为什么 DirectorySearcher 如此缓慢?

我们的应用程序有一个从 Active Directory 获取所有用户并使用他们的信息更新相关 SQL 表的过程。晚上的过程,它是几年前写的——所以它是遗留代码,并且“如果它没有损坏,就不要修复它”。但是,我们正在向我们的应用程序引入一项新功能,该功能需要修改此代码,并且由于多年未触及它,我想我不妨稍微清理一下。

所述进程仅在夜间运行,除非出现罕见的服务器故障,在这种情况下,我们必须在白天手动运行它。该过程使用良好的旧System.DirectoryServices库来完成它的工作,虽然它可以工作,但运行速度很慢。

我想改用较新的System.DirectoryServices.AccountManagement库,所以我开始重写整个过程(几百行代码),我惊讶地看到它的性能PrincipalSearcher 显着优于DirectorySearcher.

我一直在试图寻找原因并找到了以下 SO 答案,该答案对两者进行了比较,指出DirectorySearcher应该比PrincipalSearcher.

我启动了一个测试项目以确保我没有出现幻觉:

class Program
{
    static void Main(string[] args)
    {
        // New stuff
        var context = new PrincipalContext(ContextType.Domain, "mydomain.com");
        var properties = new[] { "cn", "name", "distinguishedname", "surname", "title", "displayname" };
        var i = 0;
        var now = DateTime.Now;

        new Thread(delegate()
        {
            while (true)
            {
                Console.Write("\r{0} ms, {1} results", (DateTime.Now - now).TotalMilliseconds, i); …
Run Code Online (Sandbox Code Playgroud)

c# active-directory

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

在Spark Streaming中,有没有办法检测批处理何时完成?

我使用Spark 1.6.0和Cloudera 5.8.3.
我有一个DStream对象,并在其上定义了大量的转换,

val stream = KafkaUtils.createDirectStream[...](...)
val mappedStream = stream.transform { ... }.map { ... }
mappedStream.foreachRDD { ... }
mappedStream.foreachRDD { ... }
mappedStream.map { ... }.foreachRDD { ... }
Run Code Online (Sandbox Code Playgroud)

有没有办法注册foreachRDD保证最后执行的最后一个并且只有在上面的foreachRDDs完成执行时?
换句话说,当Spark UI显示作业已完成时 - 就在我想要执行轻量级函数时.

API中是否有允许我实现的内容?

谢谢

scala cloudera apache-spark spark-streaming

0
推荐指数
1
解决办法
1938
查看次数