我对密码学很陌生,想了解哈希算法。
我有以下来源来创建密码的哈希版本,该密码可以存储在我的数据库中。
public static string hashPasswordGenerator(string password)
{
System.Security.Cryptography.SHA256Managed crypt = new System.Security.Cryptography.SHA256Managed();
StringBuilder hash = new StringBuilder();
byte[] cry = crypt.ComputeHash(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetByteCount(password));
return Convert.ToBase64String(cry);
}
Run Code Online (Sandbox Code Playgroud)
我的示例用户User1使用密码Password1,这返回哈希版本GVE/3J2k+3KkoF62aRdUjTyQ/5TVQZ4fI2PuqJ3+4d0=
我的问题是:
- 这安全吗?
- 我应该加盐吗?如果是这样,有人可以给我看一个简单的例子,因为我真的不明白它是如何生成盐的,以便它每次都会匹配密码?
- 如果有人有这个 hashPasswordGenerator 方法,他们可以对我的密码进行逆向工程吗?
提前致谢。
由于Charts.js还不支持注释,所以我在绘制图表后添加了数据点的注释。使用 ctx.fillText 如下所示。
animation: {
animateScale: true,
animateRotate: true,
onComplete: function () {
var chartInstance = this.chart,
ctx = chartInstance.ctx;
ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
ctx.textAlign = 'center';
ctx.fillStyle = this.chart.config.options.defaultFontColor;
ctx.textBaseline = 'bottom';
this.data.datasets.forEach(function (dataset, i) {
var meta = chartInstance.controller.getDatasetMeta(i);
meta.data.forEach(function (bar, index) {
data = dataset.data[index];
ctx.fillText(data, bar._model.x, bar._model.y - 5);
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
除了现在工具提示显示在新添加的文本下方之外,这非常有效。这并不那么明显,但有时它会重叠在一个不好的地方,这意味着您看不到后面的工具提示。
有没有办法设置 ctx.fillText 或工具提示的 z 索引,以便我可以正确地对它们进行分层?
我正在尝试测试 RTKQuery 是否已使用 jest 调用端点。
我最终还希望能够模拟返回数据是什么,但首先我只想检查挂钩是否已被调用。
在下面的示例中,我试图监视 myApi 以获取自动生成的 useGetMyListQuery 挂钩。
运行时会抛出错误,有人可以帮忙吗?
it('Should render', async () => {
jest.spyOn(myApi, 'useGetMyListQuery')
render(
<Provider store={store}>
<MyComponent />
</Provider>
)
expect(myApi.useGetMyListQuery).toBeCalled()
})
Run Code Online (Sandbox Code Playgroud) 在 Google Apps Script 中获取边框详细信息的最佳方法是什么?
我在 GAS 的文档中看不到任何带边框的东西,所以我不得不求助于通过电子表格 API 获取边框。
这可以正常工作,除了当边界数量变大时需要很长时间才能返回或根本不返回。
有一个更好的方法吗?
var fieldsBorders = 'sheets(data(rowData/values/userEnteredFormat/borders))';
var currSsId = SpreadsheetApp.getActiveSpreadsheet().getId();
var activeSheet = SpreadsheetApp.getActiveSheet();
var name = activeSheet.getName();
var data = Sheets.Spreadsheets.get(currSsId, {
ranges: name,
fields: fieldsBorders
});
Run Code Online (Sandbox Code Playgroud) 我只是想学习使用 redux,我有一个非常简单的计数器列表组件,它有一个子计数器组件的列表。
我在计数器上有一个 onIncrement 操作,我想在单击时增加计数。
当我单击增量时,它会更新父状态,但是子计数器不会更新。如果我浏览然后返回列表,它确实呈现正确,在我看来这意味着状态已更新。
这是我的代码:
计数器组件
import React, { Component } from "react";
import { connect } from 'react-redux';
import { incrementCounter } from '../../actions/counterActions';
import PropTypes from 'prop-types';
class Counter extends Component {
render() {
return <div className="m-2">
<b>{this.props.counter.count}</b>
<button className="btn btn btn-secondary btn-sm m-2" onClick={() => { this.onIncrement(this.props.counter) }}>Increment</button>
</div>;
}
onIncrement(counter) {
this.props.incrementCounter(counter);
}
}
const mapStateToProps = state => ({
})
Counter.propTypes = {
incrementCounter: PropTypes.func.isRequired,
}
export default connect(mapStateToProps, { incrementCounter })(Counter);
Run Code Online (Sandbox Code Playgroud)
计数器列表组件 …
我正在使用 webpack 使用 HtmlWebpackPlugin 生成 html 文件 - 我希望注入所有代码而不是引用任何外部 javascript 文件。
在我看来,Webpack 在 html 文档的底部包含了 main.js,有没有办法阻止这种情况发生?
<script src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的 webpack 配置如下所示
var path = require('path');
var fs = require("fs");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
module.exports = {
context: __dirname,
entry: './Resources/TestExport/index.js',
output: {
path: path.resolve(__dirname, 'Resources')
},
plugins: [
new HtmlWebpackPlugin({
filename: 'TestExport.html',
template: './Resources/TestExport/SecureExportTemplate.html',
inject: true,
jquery: fs.readFileSync('./Resources/TestExport/js/jquery.js', 'utf8'),
testExport: require("@babel/core").transformSync(fs.readFileSync('./Resources/TestExport/js/testExport.js', 'utf8'), {
"presets": [["@babel/preset-env"]]
}).code,
style: fs.readFileSync('./Resources/TestExport/css/style.css', 'utf8'),
minify: {
html5: true,
collapseWhitespace: true,
minifyCSS: …Run Code Online (Sandbox Code Playgroud) 我需要获取TSQL中两个日期之间发生了多少特定的小时。一些例子:
以下将得出结果= 1
declare @date1 datetime = '2019-10-01 00:00:00.000';
declare @date2 datetime = '2019-10-02 00:00:00.000';
Run Code Online (Sandbox Code Playgroud)
以下将使结果= 0,因为之间有0个4AM
declare @date1 datetime = '2019-10-01 05:00:00.000';
declare @date2 datetime = '2019-10-02 00:00:00.000';
Run Code Online (Sandbox Code Playgroud)
以下将得出结果= 2,因为之间有2个4AM
declare @date1 datetime = '2019-10-01 03:00:00.000';
declare @date2 datetime = '2019-10-02 05:00:00.000';
Run Code Online (Sandbox Code Playgroud)
以下示例将给出结果= 2,因为即使它们是在4:00 AM时间,也有2个4AM
declare @date1 datetime = '2019-10-01 04:00:00.000';
declare @date2 datetime = '2019-10-02 04:00:00.000';
Run Code Online (Sandbox Code Playgroud)
我已经尝试过类似的操作...但是给出的答案不正确
DECLARE @startdate AS DATETIME = '2019-10-01 03:00:00.000'
DECLARE @enddate AS DATETIME = '2019-10-02 00:00:00.000'
DECLARE @hour int = 4
SELECT DATEDIFF(HOUR, …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我需要获取从已用 JavaScript 编译的 SASS 文件生成的 CSS 字符串。
我有一个只使用 CSS 的解决方案,使用 raw-loader
https://github.com/webpack-contrib/raw-loader
使用以下代码...
import css from '!!raw-loader!../css/styles.css';
console.log(css);
Run Code Online (Sandbox Code Playgroud)
但是,为此我需要在执行这一步之前手动编译 SCSS,而这我真的不想做。
我更愿意做这样的事情...注意它是一个 SCSS 而不是 CSS 文件
import css from '!!raw-loader!../css/styles.scss';
console.log(css);
Run Code Online (Sandbox Code Playgroud)
但这会返回一些 JavaScript,我的 webpack 配置中已经有一个 SCSS 加载器,看起来像这样。
{
test: /\.s[ac]ss$/i,
use: [
{
loader: 'style-loader',
options: {
insert: 'head', // insert style tag inside of <head>
injectType: 'singletonStyleTag' // this is for wrap all your style in just one style tag
}
},
'css-loader',
'sass-loader'
]
},
Run Code Online (Sandbox Code Playgroud) 我想尝试使用 Azure 存储来托管我的静态网站。
按照本教程,我已经到了需要启用静态网站的重点。
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website-host
但是,当我这样做时..静态网站的选项不在列表中。
谁能帮我?我尝试了不同的地区和帐户类型,但没有一个显示该选项。
如我下面的屏幕截图所示,我已经按照文档使用 Storage V2(通用 V2)设置了 ip,但仍然没有得到该选项。
我想在 C# Lambda 调用之间使用缓存,我知道如果 Lambda 从冷启动,这是不可能的,但如果在短时间内被多次调用,我们可以使用缓存。
我尝试过创建一个静态变量,但这似乎在每次调用后都会重新初始化?
有人有主意吗?下面是一个示例,我希望每次将 TestCache 变量增加 1,但这总是返回 1。
using Amazon.Lambda.APIGatewayEvents;
using Amazon.Lambda.Core;
using System.Collections.Generic;
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
namespace MyTestLambda
{
public class Global
{
private readonly Dictionary<string, string> allOriginHeaders = new Dictionary<string, string>
{
{ "Access-Control-Allow-Origin", "*" }
};
public static int TestCache = 0;
public APIGatewayProxyResponse Handler(APIGatewayProxyRequest apigProxyEvent)
{
TestCache += 1;
return new APIGatewayProxyResponse
{
Body = TestCache.ToString(), …Run Code Online (Sandbox Code Playgroud) 我使用 gitlab 创建了一个私人 npm 注册表
我有以下 .npmrc 文件,该文件与我用来发布的 .npmrc 文件相同,没有任何问题。我已用占位符替换了所有公司值。
@myorg:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/packages/npm/:_authToken=[[MY_TOKEN_HERE]]
//gitlab.com/api/v4/projects/12345678/packages/npm/:_authToken=[[MY_TOKEN_HERE]]
Run Code Online (Sandbox Code Playgroud)
当我去安装时,我收到以下错误消息
npm install @myorg/my-package-name-here
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@myorg/my-package-name-here - Not found
npm ERR! 404
npm ERR! 404 '@myorg/my-package-name-here@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我想枚举一个字符串列表,然后检查重复项,如果有任何重复项,最后增加数字.字符串的顺序无关紧要.
例如,如果我的列表是:
- 测试
- 测试仪
- 测试仪
- 测试仪
它将改为
- 测试
- 测试仪
- 测试仪(1)
- 测试仪(2)
是否有捷径可寻?我目前的想法是做一个分组,然后找到每个组的计数,然后递归地遍历每个组并更改值 - 但确定有一个更快的方法来使用LINQ做到这一点
javascript ×4
c# ×3
redux ×2
webpack ×2
aws-lambda ×1
azure ×1
azureportal ×1
border ×1
chart.js ×1
cryptography ×1
css ×1
datetime ×1
gitlab ×1
group-by ×1
hash ×1
linq ×1
loader ×1
node.js ×1
npm ×1
npm-install ×1
npm-registry ×1
performance ×1
reactjs ×1
rtk-query ×1
sass ×1
scope ×1
security ×1
sha256 ×1
sql ×1
sql-server ×1
t-sql ×1
testing ×1
tooltip ×1
z-index ×1