美团拼图滑块

news2024/11/20 11:47:32

有时候放弃也是一种智慧。

 就像这说的一样,美团的拼图滑块,不知道这个缺口该怎么去处理,正常划顶到最外面去了,所以就不知道这个是咋计算的。

 先来看看他的这个加密,跟原来的一划到底其实是一样的,难度只是在轨迹的处理上,我觉得还是一划到底简单点,然后的话拼图滑块取消了sign跟sess的计算。

这就叫给你关了一扇门,又给你打开了一扇窗,各有各的难。

behavior值:包含了时间,滑动距离的验证。

token也是一样的流程: 然后轨迹信息在这个ft,mt中,mt为倒叙的behiver_info['trajectory'][0]['point']信息,这个可以去看看,不过最后一个时间值不同,找了几次规律发现时间差为37,47。大家也可以去试试看。

分享一个自己写的轨迹处理:

def get_tracks(distance):
    trajectory=[]
    track_token_ft=[]
    track_token_mt=[]
    ts=int(time.time()*1000)
    cts=int(int(time.time()*1000)+random.random()*(10**6))
    first_x=826
    first_y=random.randint(400,410)
    behiver_info={
        "env": {
            "Type": 1,
            "zone": [[first_y-72,first_y-3],[296,222],[296,44]],
            "client": [803,388],
            "Timestamp": [ts,cts],
            "count": 1,
            "timeout": 0
        },
        "trajectory": [
            {
                "point": [
                    [0,826,403,cts-ts],
                    [0,827,403,190805],
                    [0,828,403,190821],
                    [0,829,403,190837],
                    [0,830,403,190854],
                    [0,831,403,190869],
                    [0,832,403,190901],
                    [0,833,403,190917],
                    [0,834,403,190933],
                    [0,835,403,190957],
                    [0,836,403,190965],
                    [0,837,403,190981],
                    [0,838,403,191015],
                    [0,840,403,191037],
                    [0,841,403,191045],
                    [0,843,403,191061],
                    [0,844,403,191077],
                    [0,846,403,191085],
                    [0,847,403,191101],
                    [0,849,403,191117],
                    [0,850,403,191125],
                    [0,852,403,191133],
                    [0,853,403,191149],
                    [0,855,403,191157],
                    [0,856,403,191173],
                    [0,857,403,191181],
                    [0,858,403,191189],
                    [0,859,403,191213],
                    [0,860,403,191229],
                    [0,861,403,191237],
                    [0,862,403,191253],
                    [0,864,403,191269],
                    [0,865,403,191285],
                    [0,867,403,191301],
                    [0,868,403,191317],
                    [0,869,403,191333],
                    [0,871,403,191341],
                    [0,873,403,191357],
                    [0,874,403,191365],
                    [0,876,403,191381],
                    [0,878,403,191389],
                    [0,879,403,191397],
                    [0,881,403,191413],
                    [0,882,403,191421],
                    [0,883,403,191429],
                    [0,884,403,191453],
                    [0,885,403,191461],
                    [0,886,403,191477],
                    [0,887,403,191485],
                    [0,888,403,191493],
                    [0,889,403,191501],
                    [0,890,403,191509],
                    [0,891,403,191517],
                    [0,892,403,191525],
                    [0,893,403,191541],
                    [0,894,403,191549],
                    [0,895,403,191565],
                    [0,896,403,191573],
                    [0,898,403,191581],
                    [0,899,403,191597],
                    [0,901,403,191605],
                    [0,903,403,191621],
                    [0,904,403,191629],
                    [0,905,403,191637],
                    [0,906,403,191645],
                    [0,907,403,191653],
                    [0,910,403,191661],
                    [0,911,403,191677],
                    [0,913,403,191685],
                    [0,914,403,191701],
                    [0,916,403,191718],
                    [0,917,403,191725],
                    [0,918,403,191733],
                    [0,919,403,191741],
                    [0,921,403,191749],
                    [0,922,403,191757],
                    [0,923,403,191766],
                    [0,925,403,191773],
                    [0,926,403,191781],
                    [0,927,403,191797],
                    [0,928,403,191805],
                    [0,929,403,191814],
                    [0,930,403,191821],
                    [0,931,403,191829],
                    [0,932,403,191837],
                    [0,933,403,191846],
                    [0,934,403,191853],
                    [0,936,403,191862],
                    [0,938,403,191869],
                    [0,939,403,191885],
                    [0,941,403,191893],
                    [0,942,403,191909],
                    [0,944,403,191933],
                    [0,945,403,191965],
                    [0,947,403,191981],
                    [0,948,403,191997],
                    [0,950,403,192005],
                    [0,951,403,192013],
                    [0,953,403,192021],
                    [0,954,403,192029],
                    [0,955,403,192037],
                    [0,956,403,192045],
                    [0,957,403,192053],
                    [0,958,403,19206],
                    [0,959,403,192069],
                    [0,960,403,192077],
                    [0,961,403,192093],
                    [0,962,403,192101],
                    [0,963,403,192109],
                    [0,964,403,192125],
                    [0,966,403,192133],
                    [0,967,403,192149],
                    [0,969,403,192157],
                    [0,970,403,192173],
                    [0,972,403,192181],
                    [0,973,403,192197],
                    [0,974,403,192205],
                    [0,975,403,192213],
                    [0,976,403,192229],
                    [0,977,403,192245],
                    [0,978,403,192261],
                    [0,979,403,192277],
                    [0,980,403,192285],
                    [0,982,403,192293],
                    [0,985,403,192309],
                    [0,987,403,192317],
                    [0,989,403,192325],
                    [0,991,403,192333],
                    [0,992,403,192349],
                    [0,994,403,192357],
                    [0,996,403,192381],
                    [0,997,403,192405],
                    [0,998,403,192437],
                    [0,999,403,192445],
                    [0,1000,403,192461],
                    [0,1001,403,192477],
                    [0,1003,403,192509],
                    [0,1004,403,192525],
                    [0,1006,403,192550],
                    [0,1007,403,192573],
                    [0,1008,403,192597],
                    [0,1009,403,192613],
                    [0,1010,403,192629],
                    [0,1011,403,192669],
                    [0,1012,403,192765],
                    [0,1013,403,192781],
                    [0,1014,403,192814]
                ],
                "vector": {
                    "orientation": "h"
                }
            }
        ]
    }
    strat_time=int(cts-ts)
    trajectory.append([0,first_x,first_y,strat_time])
    for points in range(1,distance):
        next_x=first_x+points
        next_y=first_y+random.randint(-1,1)
        strat_time=int(strat_time+random.randint(5,25))
        if next_x-first_x!=distance:
            trajectory.append([0,next_x,next_y,strat_time])
        else:
            break
    print("distance:",trajectory[-1][1]-trajectory[0][1])
    behiver_info['trajectory'][0]['point']=trajectory
    print('behiver_info:',behiver_info)
    # timeout=behiver_info['env']['Timestamp'][1]-behiver_info['env']['Timestamp'][0]
    # print(timeout)
    # timeout=behiver_info['trajectory'][0]['point'][0][3]
    # print(timeout)
    # behiver_dis=behiver_info['trajectory'][0]['point'][-1][1]-behiver_info['trajectory'][0]['point'][0][1]
    # print(behiver_dis)

    token_mt=[
        "1014,403,192851",
        "1013,403,192818",
        "1012,403,192802",
        "1011,403,192706",
        "1010,403,192666",
        "1009,403,192650",
        "1008,403,192634",
        "1007,403,192610",
        "1006,403,192587",
        "1004,403,192562",
        "1003,403,192546",
        "1001,403,192514",
        "1000,403,192498",
        "999,403,192482",
        "998,403,192474",
        "997,403,192442",
        "996,403,192418",
        "994,403,192394",
        "992,403,192386",
        "991,403,192370",
        "989,403,192362",
        "987,403,192354",
        "985,403,192346",
        "982,403,192330",
        "980,403,192322",
        "979,403,192314",
        "978,403,192298",
        "977,403,192282",
        "976,403,192266",
        "975,403,192250",
        "974,403,192242",
        "973,403,192234",
        "972,403,192218",
        "970,403,192210",
        "969,403,192194",
        "967,403,192186",
        "966,403,192170",
        "964,403,192162",
        "963,403,192146",
        "962,403,192138",
        "961,403,192130",
        "960,403,192114",
        "959,403,192106",
        "958,403,192098",
        "957,403,192090",
        "956,403,192082",
        "955,403,192074",
        "954,403,192066",
        "953,403,192058",
        "951,403,192050",
        "950,403,192042",
        "948,403,192034",
        "947,403,192018",
        "945,403,192002",
        "944,403,191970",
        "942,403,191946",
        "941,403,191930",
        "939,403,191922",
        "938,403,191906",
        "936,403,191899"
    ] ####倒序behiver_info['trajectory'][0]['point']

    for points in trajectory[::-1][0:60]:
        track_token_mt.append(f"{points[1]},{points[2]},{int(points[3])+37}")
    print('track_token_mt:',track_token_mt)

    first_x_ft=first_x+10
    first_y_ft=distance-37
    strat_time_ft=2858
    track_token_ft.append(f"{first_x_ft},{first_y_ft},{strat_time_ft}")
    next_first_x_ft = first_x_ft - random.randint(1, 3)
    next_first_y_ft = first_y_ft - random.randint(1, 3)
    next_strat_time_ft = strat_time_ft - random.randint(10, 30)
    track_token_ft.append(f"{next_first_x_ft},{next_first_y_ft},{next_strat_time_ft}")
    for i in range(0,59):
        next_first_x_ft=next_first_x_ft-1
        next_first_y_ft=next_first_y_ft-2
        if next_first_y_ft<=0 or next_first_y_ft<=1:
            next_strat_time_ft=next_strat_time_ft-i
            track_token_ft.append(f"{next_first_x_ft},{next_first_y_ft+(-next_first_y_ft)+2},{next_strat_time_ft}")
        else:
            track_token_ft.append(f"{next_first_x_ft},{next_first_y_ft},{next_strat_time_ft}")
    last_ft_x=int(track_token_ft[-1][0].strip(',')[0])
    last_ft_time = track_token_ft[-1].split(',')[-1]
    track_token_ft.append(f"{last_ft_x},{0},{last_ft_time}")
    token_info={
        "v": "2.2.2",
        "ts": ts,
        "cts": int(time.time()*1000),
        "brVD": [
            1920,
            487
        ],
        "brR": [
            [
                1920,
                1080
            ],
            [
                1920,
                1050
            ],
            24,
            24
        ],
        "bI": [
            "https://verify.meituan.com/v2/web/general_page?action=spiderindefence&requestCode=becca4f50deb45dab160f17ebc43b8fd&platform=1000&adaptor=auto&succCallbackUrl=https%3A%2F%2Foptimus-mtsi.meituan.com%2Foptimus%2FverifyResult%3ForiginUrl%3Dhttps%253A%252F%252Fwww.meituan.com%252F",
            "https://passport.meituan.com/"
        ],
        "aM": "",
        "broP": [
            "PDF Viewer",
            "Chrome PDF Viewer",
            "Chromium PDF Viewer",
            "Microsoft Edge PDF Viewer",
            "WebKit built-in PDF"
        ],
        "cV": "606031946ed0a0ab251a38223152c059",
        "wV": "WebKit",
        "wR": "WebKit WebGL",
        "wVU": "Google Inc. (NVIDIA)",
        "wRU": "ANGLE (NVIDIA, NVIDIA GeForce GT 1030 Direct3D11 vs_5_0 ps_5_0, D3D11)",
        "aF": "",
        "wI": "3166190811",
        "wC": "{\"platform\":\"Win32\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36\",\"contextName\":\"webgl2\",\"glVersion\":\"WebGL 2.0 (OpenGL ES 3.0 Chromium)\",\"shadingLanguageVersion\":\"WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)\",\"vendor\":\"WebKit\",\"renderer\":\"WebKit WebGL\",\"unMaskedVendor\":\"Google Inc. (NVIDIA)\",\"unMaskedRenderer\":\"ANGLE (NVIDIA, NVIDIA GeForce GT 1030 Direct3D11 vs_5_0 ps_5_0, D3D11)\",\"antialias\":\"Available\",\"angle\":\"Yes, D3D9\",\"majorPerformanceCaveat\":\"No\",\"maxColorBuffers\":8,\"redBits\":8,\"greenBits\":8,\"blueBits\":8,\"alphaBits\":8,\"depthBits\":24,\"stencilBits\":8,\"maxRenderBufferSize\":16384,\"maxCombinedTextureImageUnits\":32,\"maxCubeMapTextureSize\":16384,\"maxFragmentUniformVectors\":1024,\"maxTextureImageUnits\":16,\"maxTextureSize\":16384,\"maxVaryingVectors\":30,\"maxVertexAttributes\":16,\"maxVertexTextureImageUnits\":16,\"maxVertexUniformVectors\":4095,\"aliasedLineWidthRange\":\"[1, 1]\",\"aliasedPointSizeRange\":\"[1, 1024]\",\"maxViewportDimensions\":\"[32767, 32767]\",\"maxAnisotropy\":16,\"vertexShaderBestPrecision\":\"[-1.7014118346046923e+38, 1.7014118346046923e+38] (23 bit mantissa)\",\"fragmentShaderBestPrecision\":\"[-1.7014118346046923e+38, 1.7014118346046923e+38] (23 bit mantissa)\",\"fragmentShaderFloatIntPrecision\":\"highp/highp\",\"webglExtensions\":[\"ANGLE_instanced_arrays\",\"EXT_blend_minmax\",\"EXT_color_buffer_half_float\",\"EXT_disjoint_timer_query\",\"EXT_float_blend\",\"EXT_frag_depth\",\"EXT_shader_texture_lod\",\"EXT_texture_compression_bptc\",\"EXT_texture_compression_rgtc\",\"EXT_texture_filter_anisotropic\",\"EXT_sRGB\",\"KHR_parallel_shader_compile\",\"OES_element_index_uint\",\"OES_fbo_render_mipmap\",\"OES_standard_derivatives\",\"OES_texture_float\",\"OES_texture_float_linear\",\"OES_texture_half_float\",\"OES_texture_half_float_linear\",\"OES_vertex_array_object\",\"WEBGL_color_buffer_float\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_compressed_texture_s3tc_srgb\",\"WEBGL_debug_renderer_info\",\"WEBGL_debug_shaders\",\"WEBGL_depth_texture\",\"WEBGL_draw_buffers\",\"WEBGL_lose_context\",\"WEBGL_multi_draw\"],\"maxColorBuffers2\":1,\"webgl2Extensions\":[\"EXT_color_buffer_float\",\"EXT_color_buffer_half_float\",\"EXT_disjoint_timer_query_webgl2\",\"EXT_float_blend\",\"EXT_texture_compression_bptc\",\"EXT_texture_compression_rgtc\",\"EXT_texture_filter_anisotropic\",\"EXT_texture_norm16\",\"KHR_parallel_shader_compile\",\"OES_draw_buffers_indexed\",\"OES_texture_float_linear\",\"OVR_multiview2\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_compressed_texture_s3tc_srgb\",\"WEBGL_debug_renderer_info\",\"WEBGL_debug_shaders\",\"WEBGL_lose_context\",\"WEBGL_multi_draw\",\"WEBGL_provoking_vertex\"],\"maxVertexUniformComponents\":16380,\"maxVertexUniformBlocks\":12,\"maxVertexOutputComponents\":120,\"maxVaryingComponents\":120,\"maxFragmentUniformComponents\":4096,\"maxFragmentUniformBlocks\":12,\"maxFragmentInputComponents\":120,\"minProgramTexelOffset\":-8,\"maxProgramTexelOffset\":7,\"maxDrawBuffers\":8,\"maxColorAttachments\":8,\"maxSamples\":8,\"max3dTextureSize\":2048,\"maxArrayTextureLayers\":2048,\"maxTextureLodBias\":2,\"maxUniformBufferBindings\":24,\"maxUniformBlockSize\":65536,\"uniformBufferOffsetAlignment\":256,\"maxCombinedUniformBlocks\":24,\"maxCombinedVertexUniformComponents\":212988,\"maxCombinedFragmentUniformComponents\":200704,\"maxTransformFeedbackInterleavedComponents\":120,\"maxTransformFeedbackSeparateAttribs\":4,\"maxTransformFeedbackSeparateComponents\":4,\"maxElementIndex\":4294967294,\"maxServerWaitTimeout\":0,\"webgl2Functions\":[\"copyBufferSubData\",\"getBufferSubData\",\"blitFramebuffer\",\"framebufferTextureLayer\",\"getInternalformatParameter\",\"invalidateFramebuffer\",\"invalidateSubFramebuffer\",\"readBuffer\",\"renderbufferStorageMultisample\",\"texStorage2D\",\"texStorage3D\",\"texImage3D\",\"texSubImage3D\",\"copyTexSubImage3D\",\"compressedTexImage3D\",\"compressedTexSubImage3D\",\"getFragDataLocation\",\"uniform1ui\",\"uniform2ui\",\"uniform3ui\",\"uniform4ui\",\"uniform1uiv\",\"uniform2uiv\",\"uniform3uiv\",\"uniform4uiv\",\"uniformMatrix2x3fv\",\"uniformMatrix3x2fv\",\"uniformMatrix2x4fv\",\"uniformMatrix4x2fv\",\"uniformMatrix3x4fv\",\"uniformMatrix4x3fv\",\"vertexAttribI4i\",\"vertexAttribI4iv\",\"vertexAttribI4ui\",\"vertexAttribI4uiv\",\"vertexAttribIPointer\",\"vertexAttribDivisor\",\"drawArraysInstanced\",\"drawElementsInstanced\",\"drawRangeElements\",\"drawBuffers\",\"clearBufferiv\",\"clearBufferuiv\",\"clearBufferfv\",\"clearBufferfi\",\"createQuery\",\"deleteQuery\",\"isQuery\",\"beginQuery\",\"endQuery\",\"getQuery\",\"getQueryParameter\",\"createSampler\",\"deleteSampler\",\"isSampler\",\"bindSampler\",\"samplerParameteri\",\"samplerParameterf\",\"getSamplerParameter\",\"fenceSync\",\"isSync\",\"deleteSync\",\"clientWaitSync\",\"waitSync\",\"getSyncParameter\",\"createTransformFeedback\",\"deleteTransformFeedback\",\"isTransformFeedback\",\"bindTransformFeedback\",\"beginTransformFeedback\",\"endTransformFeedback\",\"transformFeedbackVaryings\",\"getTransformFeedbackVarying\",\"pauseTransformFeedback\",\"resumeTransformFeedback\",\"bindBufferBase\",\"bindBufferRange\",\"getIndexedParameter\",\"getUniformIndices\",\"getActiveUniforms\",\"getUniformBlockIndex\",\"getActiveUniformBlockParameter\",\"getActiveUniformBlockName\",\"uniformBlockBinding\",\"createVertexArray\",\"deleteVertexArray\",\"isVertexArray\",\"bindVertexArray\"]}",
        "aG": "325",
        "wA": "390933e72e6096e878c1b972bac13f16",
        "fT": track_token_ft,
        "mT": track_token_mt,
        "kT": [],
        "aT": [
            "1004,28,DIV,4318158"
        ],
        "tT": [],
        "dT": [
            "827,411,rect,211510"
        ],
        "sT": [],
        "inputs": [],
        "buttons": [],
        "fL": "3c9243fc96d5e34649a98b502d509451"
    }
    print('track_token_ft:',track_token_ft)
    return {
        'behiver_info': behiver_info,
        'token_info': token_info

    }

 还有个难点就是这个请求头的Authencation值,hock一下看看。

(function() {
    var org = window.XMLHttpRequest.prototype.setRequestHeader;
    window.XMLHttpRequest.prototype.setRequestHeader = function(key, value) {
        console.log(key, ':', value)
        if (key == 'Authencation') {
            debugger ;
        }
        return org.apply(this, arguments);
    }
    ;
}
)();

在这里 

然后就没然后了,基本上关键的入口都找完了。

 

这个识别是有问题的,所以在线征集meituan选手一起玩玩。 

每天都在被洗脑,哈哈

完事儿了哦,大表哥们。有问题可以给我留言。或者V:15702312233

记得关注我们的作坊:图腾视觉开放平台-高速、稳定、易用的webapi接口调用 (现已合作大佬超乎你想象)图腾视觉-OCR识别平台

提示:有问题的小伙伴可以私信讨论。

重要的事儿说三遍 :若是侵权请联系作者删,若是侵权请联系作者删,若是侵权请联系作者删。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php+vue3实现点选验证码

buildadmin 中的点选验证码实现 验证码类 <?phpnamespace ba;use Throwable; use think\facade\Db; use think\facade\Lang; use think\facade\Config;/*** 点选文字验证码类*/ class ClickCaptcha {/*** 验证码过期时间(s)* var int*/private int $expire 600;/*** 可以…

萌宠俱乐部

一、html代码 二、CSS代码 三、效果图 四、继续努力呀&#xff01;&#xff01;&#xff01; 一、html代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"wi…

如何使用线性模型的【分箱】操作处理非线性问题

让线性回归在非线性数据上表现提升的核心方法之一是对数据进行分箱&#xff0c;也就是离散化。与线性回归相比&#xff0c;我们常用的一种回归是决策树的回归。为了对比不同分类器和分箱前后拟合效果的差异&#xff0c;我们设置对照实验。 生成一个非线性数据集前&#xff0c;…

Java计算数据百分比

public class CalculatePCT {public static void main(String[] args) {System.out.println(getPercent(9, 100));System.out.println(getPercent2(3, 7));}/*** 方式一&#xff1a;使用java.text.NumberFormat实现*/public static String getPercent(int x, int y) {double d1…

ACM练习——第二天

今天又是一天课&#xff0c;满课&#xff0c;很累哈&#xff0c;计组真的挺难的&#xff0c;但是多学学还是可以学明白。行吧&#xff0c;继续进入今天的ACM练习&#xff0c;现阶段都是主要练习Java到C的语言过渡。 因为今天的题目多半都是昨天的延伸&#xff0c;我就不提供Jav…

Java主流分布式解决方案多场景设计与实战

Java的主流分布式解决方案的设计和实战涉及到多个场景&#xff0c;包括但不限于以下几点&#xff1a; 分布式缓存&#xff1a;在Java的分布式系统中&#xff0c;缓存是非常重要的一部分。常用的分布式缓存技术包括Redis、EhCache等。这些缓存技术可以用来提高系统的性能和响应…

2023软件测试面试跳槽必备

你眼中的软件测试岗位是怎样的&#xff1f;大部分人可能会给出这样的回答&#xff1a;“测试&#xff1f;简单啊&#xff0c;没什么技术含量&#xff0c;无非就是看需求、看业务手册、看设计文档、然后点点功能是否实现&#xff0c;麻烦点的就是测试下部署安装是否出现兼容性问…

开讲:长江航道工程局举办首届云表无代码培训班

11月9日至10日&#xff0c;公司联合珠海乐图软件有限公司在总部机关举办了首届云表无代码编程开发初级培训班。公司所属单位工程、成本、财务等相关业务部门及项目部管理人员参加培训&#xff0c;公司总工程师张晏方作开班动员讲话。 张晏方指出&#xff0c;公司自主开发的云表…

java生成docx文档, docx文档动态饼图

背景: 最近接了个需求, 要求生成日报, 大概如下图所示: 其中*表示变量, 看到要动态生成doc给我难受坏了,为什么会有这种需求? 然后看到里面还要动态生成饼图, oh, no.........没有办法, 硬着头皮上吧. 于是就搜了下java生成docx的方式, 看到的, 比较靠谱的一种通过freemake…

【每日一题】1334. 阈值距离内邻居最少的城市-2023.11.14

题目&#xff1a; 1334. 阈值距离内邻居最少的城市 有 n 个城市&#xff0c;按从 0 到 n-1 编号。给你一个边数组 edges&#xff0c;其中 edges[i] [fromi, toi, weighti] 代表 fromi 和 toi 两个城市之间的双向加权边&#xff0c;距离阈值是一个整数 distanceThreshold。 …

[Linux] ssh远程访问及控制

一、ssh介绍 1.1 SSH简介 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用于实现远程登录、远程复制等功能的字符接口。SSH 协议包括用户在登录时输入的用户密码、双方之间的通信。 加密数据传输&#xff0c;SSH 是一种建立在应用层和传输层上…

<MySQL> 查询数据进阶操作 -- 聚合查询

目录 一、聚合查询概述 二、聚合函数查询 2.1 常用函数 2.2 使用函数演示 2.3 聚合函数参数为*或列名的查询区别 2.4 字符串不能参与数学运算 2.5 具有误导性的结果集 三、分组查询 group by 四、分组后条件表达式查询 五、MySQL 中各个关键字的执行顺序 一、聚合查询…

【2013年数据结构真题】

highlight: a11y-dark 41题 王道解析&#xff1a; 算法的策略是从前向后扫描数组元素&#xff0c;标记出一个可能成为主元素的元素Num 。然后重新计数&#xff0c;确认Num是否是主元素。算法可分为以下两步&#xff1a; 选取候选的主元素&#xff1a;依次扫描所给数组中的每个…

【数据结构 | 链表】leetcode 2. 两数相加

个人主页&#xff1a;兜里游客棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里游客棉花糖 原创 收录于专栏【LeetCode】 原题链接&#xff1a;点击直接跳转到该题目 目录 题目描述解题代码 题目描述 给你两个 非空 的链表&#xff0c;表示两个非…

降低城市内涝风险,万宾科技内涝积水监测仪的作用

频繁的内涝会削弱和损坏城市的关键基础设施&#xff0c;包括道路、桥梁和公用设施。城市内涝风险降低可以减少交通中断事件&#xff0c;也可以保护居民安全并降低路面维修等成本&#xff0c;进一步确保城市基本服务继续发挥作用。对城市可持续发展来讲有效减少内涝的风险是重要…

ESP32网络开发实例-将DS18B20传感器读数发送到InfluxDB

将DS18B20传感器读数发送到InfluxDB 文章目录 将DS18B20传感器读数发送到InfluxDB1、InfluxDB、DS18B20介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将介绍如何将 DS18B20传感器读数发送到 InfluxDB 时间序列数据库。 使用 InfluxDB 数据库的一大特点是可以在确定的时…

python 爬虫之requests 库以及相关函数的详细介绍

get 函数 当你使用 requests.get 函数时&#xff0c;你可以按照以下步骤来发起一个 GET 请求&#xff1a; 导入 requests 模块&#xff1a; 在你的 Python 脚本或程序中&#xff0c;首先导入 requests 模块。 import requests指定目标 URL&#xff1a; 设置你要请求的目标 URL…

4路光栅尺磁栅尺编码器解码转换5MHz高速差分信号转Modbus TCP网络模块 YL97-RJ45

特点&#xff1a; ● 光栅尺磁栅尺解码转换成标准Modbus TCP协议 ● 光栅尺5V差分信号直接输入&#xff0c;4倍频计数 ● 模块可以输出5V的电源给光栅尺供电 ● 高速光栅尺磁栅尺计数&#xff0c;频率可达5MHz ● 支持4个光栅尺同时计数&#xff0c;可识别正反转 ● 可网…

啊?印第安碳纤维限量款?复古与性能的结合吗Indian FTR x 100% R Carbon

印第安作为美国的老牌摩托车厂大家都不陌生了&#xff0c;和哈雷有一点比较大的区别是印第安的车还是考虑马力性能的&#xff0c;也是敢于标出自己的马力参数数据&#xff0c;就比如印第安的FTR系列。 以泥地赛道为灵感设计的印第安FTR运动街车发布了最新的限量联名款车型&…

spring cloud alibaba 简介

微服务搭建组件选型 1.服务注册中心 Nacos(spring-cloud-alibaba) 2.服务通信 OpenFeign(spring-cloud) 3.服务熔断、降级、限流 Sentinel(spring-cloud-alibaba) 4.网关 Gateway(spring-cloud) 5.服务配置中心 …