swift 4 中变量的密码加密

Password encryption for variable in swift 4

我有一个变量var password = ""。该应用程序具有注册页面,其中密码以安全输入条目的形式出现。

然后我必须将密码从一个控制器传递到另一个控制器,所以我将它分配给密码变量,以完成注册过程。

password = passwordtextField.text

Class A{
var password = ""
@IBOutlet weak var passwordTextField:UITextField!

//save function
password = passwordtextField.text

//pass the data to next class to complete registration
let vc = storyboard?.instantiateViewController(withIdentifier: "BControllerid") as! BViewController
  vc.passwordB = password

}

Class BViewController{
var passwordB = ""

//viewDiLoad
request.body = ["password" : passwordB]
//call the request
}

我的问题是: 1.Should 我加密分配给变量的密码?如果可以,该怎么做?在拨打 API 电话之前我是否必须再次解密? 2. 分配密码并传递给下一个 class 是否安全?

第1题:

不,您不需要加密它,因为它正在应用程序中使用。没有人可以在您的代码之外读取该变量。

好吧,您可以在将密码发送到 API 时执行相同的机制,因为如果您的网络不安全或者有人试图在您的 API 通话和应用程序中中断,那么他可以获得这些信息。因此,最好在发送到 API 时加密密码,并将其以加密形式存储到数据库中。

第2题:

是的,这样做是安全的。如前所述,它始终在您的项目中,因此除了负责人 class.

之外,没有人会读出变量和分配的值。

希望一切顺利。

以下是您的问题的答案:

  1. 1.Should 我加密密码赋值给变量?如果可以,该怎么做?在制作之前我是否必须再次解密 API打电话?

    • 当您只是在 classes 或控制器之间传递时,无需加密密码。如果解密没有加密的意义,则在将密码发送到服务器时不应解密。如果您不使用 HTTPS,那么强烈建议您加密您的密码。
  2. 分配密码并传递给实施的下一个 class 是否安全?

    • 是的,它是安全的,因为它只在您的项目中。