Dio flutter 如何通过密码和用户名加密?

问题描述

在我的应用程序中,我使用 dio Flutter 库进行登录并在我的数据库中提出问题。 这是我的配置

 static String BASE_URL = "http://localhost:8069/";
  static dio dio = dio()
    ..options.baseUrl = BASE_URL
    ..options.connectTimeout = 5000
    ..options.receiveTimeout = 100000;

登录我有

Map<String,dynamic> data = {
              "params": {
                'db': "name_db",'login': 'name_xxxxx','password': 'password_xxxx'
              }
            };
            dio.interceptors.add(CookieManager(cookieJar));
            globals.dio = dio;
            Response response = await dio.post("/web/session/authenticate",data: json.encode(data),options:
                    Options(headers: {"Content-Type": "application/json"}));

有没有办法传递加密的登录名和密码,以免在我的应用程序代码中以明文形式写入用户名和密码?

解决方法

您应该以纯文本形式接收密码,并在后端制作密码哈希并将哈希保存在DB中>.并在登录期间将纯文本作为密码,然后制作其散列,然后将其与 DB 的密码散列进行比较。 要创建哈希,您必须使用密钥。在 google 中搜索您在后端使用的任何语言。

或者,您可以尝试 RSA 。它是一种公钥密码体制,广泛用于安全数据传输。使用公钥进行编码,使用私钥进行解码。

注意:这完全与架构有关,Dio 与此无关。