微搭低代码密码加密存储

目录

  • 1 加密密码
  • 2 密码存入用户表中
  • 总结

我们在用户登录注册部分,给出了用户注册的例子。但是有一个问题,密码是在数据库中明文存储的,很容易就被破解。为了提高登录的安全性,我们本次讲解一下如何解决密码的加密存储。

1 加密密码

通常密码的加密行为在后端完成,微搭中后端逻辑是在API中完成编辑的。登录控制台,点击APIs,点击+号添加API在这里插入图片描述
选择云开发云函数
在这里插入图片描述
输入云函数的名称
在这里插入图片描述
点击编辑APIs方法
在这里插入图片描述
点击管理云函数
在这里插入图片描述
点击新建云函数
在这里插入图片描述
输入云函数的名称,完成创建
在这里插入图片描述
点击保存并安装依赖
在这里插入图片描述
复制弹出窗口的内容
在这里插入图片描述
点击文件-》新建文件
在这里插入图片描述
输入package.json
在这里插入图片描述
添加加密的依赖包,具体文件内容如下:

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {},
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@cloudbase/node-sdk": "latest",
    "crypto-js":"latest"
  }
}

输入完毕后再次点击保存并安装依赖

然后在index.js中输入如下代码

'use strict';
exports.main = async (event, context) => {
    const CryptoJS = require('crypto-js');
    const key = CryptoJS.enc.Utf8.parse('密钥');
    const password = event.password
  // 加密密码
  const encryptedPassword = CryptoJS.AES.encrypt(password, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return {password:encryptedPassword.toString()};
};

在这里插入图片描述
输入完毕后点击测试
在这里插入图片描述
输入运行入参,点击运行测试
在这里插入图片描述
看到测试成功就表明你的函数是正常运行了
在这里插入图片描述
云函数测试成功后再回到微搭的控制台来,选择我们创建的云函数
在这里插入图片描述
然后添加入参
在这里插入图片描述
入参添加好之后点击方法测试
在这里插入图片描述
看到测试成功后点击出参自动映射我们的API就加好了
在这里插入图片描述

2 密码存入用户表中

密码加密之后,我们需要存入数据源中,再按上述的方法添加一个API方法
在这里插入图片描述
这次我们选择自定义代码
在这里插入图片描述
输入如下代码

/**
* 使用 npm 包 node-fetch 发送http请求, 详细使用文档可以参考
*  https://github.com/node-fetch/node-fetch
*/

module.exports = async function (params, context) {
  const resultEncryptPassword = await context.callConnector({
    name: 'userauth_spbuo7r',
    methodName: 'encryptPassword',
    params: {
      password:params.password
    }, // 方法入参
  });

 const result = await context.callModel({
    name: 'zcyh_hh2jizk', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
    methodName: 'wedaCreate', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
    params: {
      yhm:params.username,
      mm:resultEncryptPassword.password
    }, // 数据模型方法的入参
  });


  // 这里返回数据,和出参结构映射
  return result;
};

我们代码的逻辑是先把密码加密,然后存入数据源中。点击方法测试,看一下结果
在这里插入图片描述
找到我们的用户注册数据源,可以看一下最终的结果
在这里插入图片描述
可以看到密码已经在数据源中加密存储了。API做好之后,我们在用户注册的时候,就不是使用系统自带的提交方法,需要调用一下我们的API
在这里插入图片描述
这里主要注意入参构造这一块

({username:$w.input1.value,password:$w.input2.value})

调用API方法的时候需要传入入参,参数的值我们需要获取一下表单字段的输入值

总结

我们本篇主要介绍了用户加密存储的过程,涉及到云函数如何创建、编写、测试和调用。在低代码开发中,后端逻辑的编写也是必要的,这一块主要还是沿用了云开发的内容,所以熟练掌握云开发的技能也是低代码开发必备的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/263499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FISCO BCOS(十六)多机部署及相关操作

多机部署通常指的是在多台计算机或虚拟机之间搭建一个联合系统,以实现分布式计算或服务的目的。这可以提高系统的可靠性、性能和扩展性。确保虚拟机之间能够互相通信,可以使用静态IP或者动态分配IP的方式,接下来一步步带大家进行操作搭建一条…

限量25台,川崎亮相Ninja ZX-10RR冬季限量款

最近川崎发布了自家ZX-10RR的超级限量版,官方称之为冬季测试版,之前也有一些车型推出过冬季测试版,通常是在年底推出,因为这个时候北半球都是非常寒冷的冬天。 不过这台ZX-10RR冬季测试版,并不仅仅只是限量那么简单&am…

前后端分离下的鸿鹄电子招投标系统:使用Spring Boot、Mybatis、Redis和Layui实现源码与立项流程

在数字化时代,采购管理也正经历着前所未有的变革。全过程数字化采购管理成为了企业追求高效、透明和规范的关键。该系统通过Spring Cloud、Spring Boot2、Mybatis等先进技术,打造了从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通过…

Ubuntu 常用命令之 df 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 在Ubuntu系统下,df命令是用来查看文件系统的磁盘空间占用情况的。df是disk free的缩写,这个命令可以获取硬盘被占用了多少空间,还有多少空间是可用的,硬盘的挂载点等信息。 df命令的…

AI中的强化学习是怎么做的呢?

1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewar…

Peter算法小课堂—贪心与二分

太戈编程655题 题目描述: 有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元,只能买价格不超过其现金额的车子。你是大卖场总经理,希望将车和买家尽量多地进行一对一配对…

亚马逊推出 Graviton4:具有 536.7 GBps 内存带宽的 96 核 ARM CPU

如今,许多云服务提供商都设计自己的芯片,但亚马逊网络服务 (AWS) 开始领先于竞争对手,目前其子公司 Annapurna Labs 开发的处理器可以与 AMD 和英特尔的处理器竞争。本周,AWS 推出了 Graviton4 SoC,这是一款基于 ARM 的…

通过生成表征的自条件图像生成

文章目录 摘要1、简介2、相关工作3、方法4、结果4.1、设置4.2、无条件类别的生成4.3、无分类器指导4.4、消融实验4.5、计算成本4.6、定性结果 5、讨论 摘要 https://arxiv.org/pdf/2312.03701.pdf 本文提出了表示条件图像生成(Representation-Conditioned Image Ge…

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者,你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…

LIGA-Stereo:为基于立体 3D 检测器的学习 LiDAR 几何感知表示

论文地址:https://openaccess.thecvf.com/content/ICCV2021/papers/Guo_LIGA-Stereo_Learning_LiDAR_Geometry_Aware_Representations_for_Stereo-Based_3D_Detector_ICCV_2021_paper.pdf 论文代码:https://github.com/xy-guo/LIGA-Stereo 摘要 基于立…

基于MybatisPlus批量高效插入百万条数据

引言 在JAVA程序开发中,对数据库进行大量数据插入是一个常见的操作,作为一个软件开发工程师,大批量的数据处理是日常工作,如何优化插入性能,提升数据处理效率是对大多数工程师的一个重要考验。本文将围绕逐条插入和批…

一分钟学会“沉浸式翻译”插件的安装与使用

一、安装 安装地址:https://immersivetranslate.com/ 选择对应的浏览器进入安装即可 二、简单的翻译使用方法 第一次安装需要先刷新界面才可以达到翻译效果 核心需要修改的地方在以下三个: 第一处:设置翻译服务,免费版的可以直接…

重温经典struts1之自定义类型转换器及注册的两种方式(Servlet,PlugIn)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 Struts的ActionServlet接收用户在浏览器发送的请求,并将用户输入的数据,按照FormBean中定义的数据类型,赋值给FormBean中每个变量&a…

八:爬虫-MySQL基础

一:MySQL数据库基础 1.MySQL数据库介绍 MySQL是一个[关系型数据库管理系统],由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Rela…

Kafka大数据框架学习攻略:精选Kafka学习资源,助你迅速掌握分布式消息系统!

介绍:Kafka是一个分布式、支持分区、多副本的基于zookeeper协调的分布式消息系统,可以实时处理大量数据和满足各种需求场景。它是一个基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域,支持消息的发布、订阅、消费和处理…

2023年12月21日开发正式版v1.2.3更新·本次更新30多个细节优化·完善丰富后台功能·加入演员关联机制

2023年12月21日开发正式版v1.2.3更新本次更新30多个细节优化完善丰富后台功能加入演员关联机制 产品简介 安卓苹果PCH5四端,蜻蜓z暗影版的衍生级版本,2023年优雅草蜻蜓z冬季雪花限定版,不仅继承了蜻蜓z的精良功能,还特色增加了弹…

[LitCTF 2023]PHP是世界上最好的语言!!

[LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; wp 进入页面&#xff0c;发现左边有输入框&#xff0c;下面有 RUN CODE 字样&#xff0c;估计是可以执行命令的。 执行 PHP 代码测试 <?php print(1); ?>将 PHP 一句话木马写入文件 为了蚁剑能连上&am…

通过几个基本概念说一下为什么openGauss是当下之选?

Database、Schema、User都是数据库的基本概念&#xff0c;SQL标准中也有明确规范。但不同数据库的具体实现也不尽相同&#xff0c;有些甚至大相径庭。这就导致用户在做国产化选型和数据库迁移时可能会遇到种种困难。本文从这几个基本概念展开&#xff0c;说说为什么openGauss系…