我和我的一个朋友正在讨论是否应该在将 Web 应用程序用户的密码发送到我们的服务器之前对其进行预哈希处理。
我知道有多个问题已经处理了这个主题,但它们都是关于将它安全地传输到服务器。我们的想法不是关于传输安全性(我们使用 SSL)我们想要散列客户端以防止“真实”密码到达我们的服务器。
这个想法是在 Twitter 宣布他们的错误时出现的,该错误导致密码以明文形式打印到日志文件中。
我们目前正在讨论这个概念是否有意义,以及如果我们使用 SHA512 对其进行散列,它会如何影响密码的安全性(就蛮力而言)。
特尔;博士:
我们希望在客户端散列密码,以防止我们的服务器以明文形式获取它们(我们使用 SSL 进行传输)。
这有道理吗?
哪种算法最适合用于散列?
散列后的密码将在服务器端再次使用 bCrypt 进行散列。
我有一个基类和多个扩展该基类的类,它们都有一个私有构造函数。
我现在想创建一个静态函数来创建扩展类的新实例。通常我会有一个类似这样的函数头:
public static createInstance<T extends BaseClass>(clazz: { new(): T }): T
Run Code Online (Sandbox Code Playgroud)
当我想使用这个功能时:
createInstance(CustomClass)
Run Code Online (Sandbox Code Playgroud)
它会导致打字稿吐出此错误:
TS2345:“typeof CustomClass”类型的参数不可分配给“new () => CustomClass”类型的参数。无法将“私有”构造函数类型分配给“公共”构造函数类型。
代码实际转译的代码工作得很好。
我知道这个错误告诉我什么。但我找不到解决这个问题的方法。我已经搜索了很多,而且我似乎很孤独地遇到这个问题。有什么方法可以引用带有私有构造函数的类吗?