小编Ken*_*son的帖子

散列和加密算法之间的根本区别

我看到哈希和加密算法之间存在很多混淆,我希望听到一些更专业的建议:

  1. 何时使用哈希与加密

  2. 什么使哈希或加密算法不同(从理论/数学水平),即什么使哈希不可逆(没有彩虹树的帮助)

以下是一些类似的 SO问题,没有像我想要的那样详细说明:

混淆,散列和加密有什么区别?
加密和散列之间的区别

security encryption hash cryptography

494
推荐指数
10
解决办法
20万
查看次数

如何定义包含指向自身的指针的typedef结构?

我在C中编写LinkedList,下面的代码表示我的Node定义.

typedef struct {
    int value;
    struct Node* next;
    struct Node* prev;
} Node;
Run Code Online (Sandbox Code Playgroud)

我理解(或者认为我这样做)struct Node不一样typedef struct Node.当然,我的代码编译并按照预期运行,但是,在分配时会收到很多警告,next并且prev(警告:从不兼容的指针类型分配).我猜这与我在Node结构中定义它们的方式有关.我在这里上传了完整的资源

所以,如果这确实是问题,我应该如何定义nextprev内部typedef struct Node

我担心这可能是一个转贴,但无法找到我想要的东西.谢谢.

c struct typedef

34
推荐指数
2
解决办法
4万
查看次数

MySQL - 使用String作为主键

我已经在Stack Overflow上看到了类似的帖子,但不太满意.

假设我提供Web服务.http://foo.com/SERVICEID

SERVICEID是用于引用服务的唯一字符串ID(基本64,大写/大写+数字),类似于URL缩短器服务为URL生成ID的方式.

我理解比较字符串与整数有固有的性能问题.

但我很好奇如何最大限度地优化String类型的主键.

我正在使用MySQL,(目前正在使用MyISAM引擎,但我承认并不了解所有引擎的差异).

谢谢.

为了我的目的更新,字符串实际上只是一个base62编码的整数,所以主键是一个整数,因为你不可能超过bigint的大小,所以使用其他任何东西都没有多大意义(对我而言)特殊用例)

mysql optimization primary-key-design

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

SQL从另一个表中的另一列更新一列

我在此之前阅读了各种帖子.但它们似乎都不适合我.

正如标题所示,我正在尝试从另一个表中的列更新一列.我不记得以前有这个问题..

1.表:user_settings.contact_id,我想用contacts.id更新where (user_settings.account_id == contacts_account_id)

2.以前通过account_id将联系人链接到用户帐户.但是,现在我们要将联系人链接到user_settingsviacontacts.id

以下是我尝试过的一些例子,尽管它们都没有奏效.我会感兴趣的是A.)为什么他们不工作和B.)我该怎么办呢.

例A:

UPDATE user_settings
SET user_settings.contact_id = contacts.id 
FROM user_settings 
INNER JOIN contacts ON user_settings.account_id = contacts.account_id
Run Code Online (Sandbox Code Playgroud)

例B:

UPDATE (SELECT A.contact_id id1, B.id id2
  FROM user_settings A, contacts B
  WHERE user_settings.account_id = contacts.account_id)
SET id1 = id2
Run Code Online (Sandbox Code Playgroud)

例C:

UPDATE user_settings
SET user_settings.contact_id = (SELECT id
  FROM contacts
  WHERE (user_settings.account_id = contacts.account_id)
WHERE EXISTS ( user_settings.account_id = contacts.account_id )
Run Code Online (Sandbox Code Playgroud)

我觉得我的大脑只是关闭了我,并希望重新启动它的任何颠簸.谢谢 :)

mysql join sql-update

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

Haskell迭代超过2d列表,过滤,输出1d列表

我以为我在Haskell研究中一帆风顺,直到......

我有一个[[Int]]

tiles = [[1,0,0]
        ,[0,1,0]
        ,[0,1,0]
        ]
Run Code Online (Sandbox Code Playgroud)

和数据类型:

data Coord = Coord
    { x :: Int
    , y :: Int 
    } deriving (Eq)
Run Code Online (Sandbox Code Playgroud)

基于输入tiles,我一直在尝试输出a [Coord],这样Coord只有当值为tiles1 时才生成a ,并且Coord它将在2d列表中存储它的位置:

blackBox :: [[Int]] -> [Coord]
blackBox tiles = <magic> 
-- given the above example I would expect:
-- [(Coord 0 0),(Coord 1 1),(Coord 1 2)]
Run Code Online (Sandbox Code Playgroud)

我尝试过第一次将[[Int]]转换为[Int],通过:

foldTiles :: [[Int]] -> [Int]
foldTiles tiles = foldr (++) [] tiles
Run Code Online (Sandbox Code Playgroud)

但在那之后,我不确定如何传递指数.我想如果我可以映射"折叠的瓷砖",输出一个元组(值,索引),我可以很容易地找出其余部分.

更新如果有人感兴趣,我得到它的工作,这里是它的演示(源代码和GitHub的链接)!我将不得不花更多的时间来理解每个答案,因为这是我第一次使用FP编写游戏.非常感谢!

http://kennycason.com/posts/2013-10-10-haskell-sdl-gameboy-boxxle.html

haskell

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

Java将通用LinkedList转换为通用数组

所以对于初学者来说我有一个LinkedList<String>,

我可以轻松地将它转换为数组通过toArray().即

LinkedList<String> strList = new LinkedList<String>();
String[] strArray = strList.toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)

但是让我说我​​有一个LinkedList<T> 然后我以下代码:

LinkedList<T> tList = new LinkedList<T>();
T[] strArray = tList.toArray(new T[0]);
Run Code Online (Sandbox Code Playgroud)

我得到了无法创建T错误消息的通用数组.

我怎么能绕过这个?

特别是在我的课程中LinkedList<AbstractNode<T>> nodes,我正在尝试实现一个getAll()方法,该方法将所有节点作为Array返回.
谢谢!

注意 PéterTörök的答案为我的问题提供了正确的答案,但对于我来说,简单地返回一个ArrayList而不是像Bar所提到的那样,最终平滑了我的代码.
注意2看了我的代码之后我甚至不确定是否需要进行任何转换,LinkedList对于我试图做的事情很好......: - /

java generics

12
推荐指数
1
解决办法
6486
查看次数

使用重复列在PHP中显示表

我在MySQL数据库中有以下数据:

Autonum  ID  Name  MetaValue
1         1  Rose  Drinker
2         1  Rose  Nice Person
3         1  Rose  Runner
4         2  Gary  Player
5         2  Gary  Funny
Run Code Online (Sandbox Code Playgroud)

我现在正在使用PHP,但是我使用C#,Java和其他语言多次遇到过这个问题.

现在我过去和现在的目标是以下列格式显示数据:

<table>
    <thead>
    <th>Name</th>
    <th>MetaValue1</th>
    </thead>
    <tbody>
           <tr>      
               <td>Rose</td>
                <td>
                    <ul>
                        <li>Drinker</li> 
                        <li>Nice Person</li>
                        <li>Runner</li>
                     </ul>
                </td>
            </tr>
            <tr>
                <td>Gary</td>
                <td>
                    <ul>
                         <li>Player</li>
                         <li>Funny</li>
                 </td>
                </tr>
        </tbody>

</table> 
Run Code Online (Sandbox Code Playgroud)

我之前通过创建一个代表我的SQL表的类来解决这个问题.然后我创建了一个Dictionary持有EmployeeId和类.

Dictionary<string,MyTable> MyData = new <string,MyTable>();
Table MyMetaData = new Table();
MyMetaData SomeMetaData=getMetaValueList();//imagine a web service that does that
MyData.add(EmployeeId,SomeMetaData);
Run Code Online (Sandbox Code Playgroud)

我正在跳过步骤,但我希望你明白我的观点.我可能只需要关键字来称呼这类问题.完成此任务的首选方法是什么?

html php c# sql

12
推荐指数
2
解决办法
2328
查看次数

RestFB:使用Facebook应用程序获取用户访问令牌

这就是我所拥有的:

static AccessToken accessToken = new DefaultFacebookClient().obtainExtendedAccessToken("<my app id>", "<my app secret>");
static FacebookClient client = new DefaultFacebookClient();
public static void main(String args[]) {
    System.out.print("Enter Your Status: ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String status= null;

      try {
         userName = br.readLine();
         System.out.println("..........");
      } catch (IOException ioe) {
         System.out.println("!");
         System.exit(1);
      }

    FacebookType publishMessageResponse =
                client.publish("me/feed", FacebookType.class,
                Parameter.with("message", status));
Run Code Online (Sandbox Code Playgroud)

所以第一行获取令牌并将其存储为类型AccessToken,但这对我有什么好处,因为下一行我需要提供访问令牌作为字符串,我无法转换它.任何帮助?

java facebook restfb

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

Java - 从接口到实现的动态类转换

我已阅读其他相关帖子,但仍不太确定如何,或者是否可以在Java中动态转换(实现接口).我的印象是我必须使用反射这样做.

我正在处理的特定项目需要使用许多instanceof检查,而且 - 在我看来 - 有点失控,所以会很感激任何想法/解决方案.

下面是我写的一个小例子,只是为了澄清我想要做的事情.如果您需要更多信息,请与我们联系:

接口:

public interface IRobot {
    String getName();
}
Run Code Online (Sandbox Code Playgroud)

实现:

public class RoboCop implements IRobot {
    String name = this.getClass()+this.getClass().getName();
    public RoboCop() {}
    public String getName() { return name; }
}

public class T1000 implements IRobot {
    String name = this.getClass()+this.getClass().getName();
    public T1000() {}
    public String getName() { return name; }
}
Run Code Online (Sandbox Code Playgroud)

处理实现的类:

import java.util.LinkedList;
import java.util.List;
public class RobotFactory {

    public static void main(String[] args) {
        new RobotFactory();
    }

    public RobotFactory() …
Run Code Online (Sandbox Code Playgroud)

java reflection casting dynamic

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

MySQL - 如何使用VARCHAR作为AUTO INCREMENT主键

我使用VARCHAR作为我的主键.我想自动递增它(基数62,小写/大写,数字),但是,下面的代码失败(出于显而易见的原因):

CREATE TABLE IF NOT EXISTS `campaign` (
  `account_id` BIGINT(20) NOT NULL,
  `type` SMALLINT(5)  NOT NULL,
  `id` VARCHAR(16) NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

但是,这有效:

CREATE TABLE IF NOT EXISTS `campaign` (
  `account_id` BIGINT(20) NOT NULL,
  `type` SMALLINT(5)  NOT NULL,
  `id` VARCHAR(16) NOT NULL PRIMARY KEY
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

自己跟踪'id'增量的最佳方法是什么?(因为auto_increment不起作用).我是否需要创建另一个包含ID当前迭代的表?或者有更好的方法吗?

编辑:我想澄清一点,我知道使用INT是一个auto_increment主键是合乎逻辑的方法.这个问题是对我之前看到的一些对话的回应.谢谢

mysql primary-key auto-increment

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