密碼學經典之生日悖論與生日攻擊【詳解】

?

生日悖論

?

在算法導論書上看到個比較有意思的概率算法,在這里加上自己的理解分享下:

上次剛看同學發的朋友圈說道:“兩個人同一間宿舍,而且同年同月同日生,這個緣分真的是醉了”,當時我也是醉醉的,看了這個算法后才發現,屋里有23個人,那么就可以50%的概率生日是一樣的。

?? 是這樣子證明的:

?? 首先,假設屋子里有K個人,分別對他們編號1,2,3….k號。不考慮閏年的情況,那么一年就有n=365天,首先還是要假設生日是均勻分布在一年的n天中(喜歡在春天生就都在春天生這就不均勻了),然后還要假設兩個人生日相互獨立(什么雙胞胎那些還用得著算么),

那么兩個人同一天(具體的一天)生日的概率就1/n2 (生日的概率是1/n,兩個人同一天生日當然就相乘了~),那么兩個人同一天生日(365天隨便一天)的概率就是1/n (n個1/n2相加)

?? 也就是說假如屋里面有兩個人,那么他們同一天生日的概率是1/365,那現在要解決的問題是,屋里要有多少人,才能使這個概率上升到1/2 ?

?? 用事件的對立面來求,假設事件P={屋里至少兩個人生日一樣},Q={屋里每個人生日都不一樣},那么P=1-Q

?? 那么知道Q的概率就能知道P的概率了,設BK為前K個人的生日都有一樣,Ai為前第i個人與前i-1一個人的生日都不一樣,那么就可以得到遞推式子

Bk=Bk-1^Ak

它的等價形式為

P{Bk}=P{Bk-1}P{ Ak | Bk-1}

應用遞歸式可以得到P{Bk}=P{B1} P{ A2 | B1} P{ A3 | B2}… P{ Ak-1 | Bk-2} P{ Ak | Bk-1}

?????????????????? ????=1*(n-1/n) (n-2/n)… (n-k+1/n)(B1是規定為1的,然后P{ A2 | B1}就是365中有一天已經給B1用了,那么就剩下n-1天了,所以概率為(n-1/n))

?????????????????? P{Bk}=1*(1-1/n) (1-2/n)… (1-k-1/n)

然后已知 1+x<=ex(兩個都是單調增函數,取0時為相等,過了就ex 大了,高中學的嘿嘿)

那么有1*( ) ( )… ( )<=(e-1/n)(e-2/n)…(e-(k-1/n))= (e-k(k-1)/2n))<=1/2

求得當n=365時,必有k>=23,所以結論是至少有23個人在一間屋子里,那么至少有兩個人生日相同的概率至少是1/2

在程序中,有時可能考慮產生n個隨機數,比如產生1000個范圍為0到1億之間的隨機數,任意兩個隨機數都不重復的概率為多大?傳統計算方法無法計算過于大的位數,下面是一個近似解:

?

 1 /*
 2  * 功能:范圍為r的k個隨機數互不相同的概率(r>k)。
 3  * 若k>=r,顯然概率為0.
 4  * 例1:50個人中生日互不相同的概率為distinct(365,50)約為0.0296。
 5  * 例2:隨機產生名稱為Integer.MAX_VALUE以內整數做文件名的文件1萬個,沒有相同文件名的概率為distinct(Integer.MAX_VALUE, 10000)約為0.977
 6  * 
 7  */
 8 package com.copy;
 9 import static Java.lang.Math.*;
10 public class Distinct {
11 
12 
13 public static void main(String[] args) {
14 
15 System.out.println(distinct(Integer.MAX_VALUE ,10000));
16 }
17 
18 public static double distinct(double r, double k) {
19 return sqrt(2 * PI * r) / sqrt(2 * PI * (r - k)) * pow( r/E, r - (r - k) * (log((r - k) / E) / log(r / E)) - k * log(r) / log(r / E) );
20 }
21 }

?

  1 以下是從2 人到364人生日互不相同的概率:
  2 
  3 人數2 0.997261528435304
  4 人數3 0.9917977106686194
  5 人數4 0.9836465759145728
  6 人數5 0.9728675112354711
  7 人數6 0.9595411777338625
  8 人數7 0.9437685100361304
  9 人數8 0.9256694435439302
 10 人數9 0.9053813918576331
 11 人數10 0.8830575014579024
 12 人數11 0.8588647147768872
 13 人數12 0.83298167612227
 14 人數13 0.8055965174604536
 15 人數14 0.7769045627622481
 16 人數15 0.7471059904296959
 17 人數16 0.7164034932666513
 18 人數17 0.6849999745275132
 19 人數18 0.6530963168239327
 20 人數19 0.6208892581770326
 21 人數20 0.5885694063080312
 22 人數21 0.5563194185097445
 23 人數22 0.5243123702121542
 24 人數23 0.4927103307922907
 25 人數24 0.4616631603810471
 26 人數25 0.43130753655505705
 27 人數26 0.40176621494015163
 28 人數27 0.37314752306698046
 29 人數28 0.3455450823793965
 30 人數29 0.3190377492123028
 31 人數30 0.293689761912032
 32 人數31 0.2695510781270815
 33 人數32 0.24665788369766528
 34 人數33 0.22503325255723464
 35 人數34 0.20468793562709864
 36 人數35 0.18562125583950176
 37 人數36 0.1678220861466564
 38 人數37 0.15126988761627422
 39 人數38 0.13593578544669332
 40 人數39 0.12178366188891603
 41 人數40 0.1087712465818115
 42 人數41 0.09685118661702039
 43 人數42 0.08597208068851865
 44 人數43 0.0760794638681576
 45 人數44 0.06711673182514903
 46 人數45 0.05902599560048669
 47 人數46 0.051748860305991407
 48 人數47 0.04522712328390563
 49 人數48 0.03940338929763275
 50 人數49 0.034221602187752664
 51 人數50 0.029627494094956967
 52 人數51 0.025568954802279956
 53 人數52 0.0219963249737199
 54 人數53 0.018862618059882787
 55 人數54 0.016123676408139682
 56 人數55 0.013738267663700484
 57 人數56 0.011668127892545042
 58 人數57 0.009877958015770329
 59 人數58 0.008335380137448146
 60 人數59 0.0070108601977503845
 61 人數60 0.005877603112454998
 62 人數61 0.004911426193103169
 63 人數62 0.004090616201315916
 64 人數63 0.003395774897958958
 65 人數64 0.002809657422794226
 66 人數65 0.0023170073006054163
 67 人數66 0.0019043913313614204
 68 人數67 0.0015600370976016945
 69 人數68 0.001273675322755735
 70 人數69 0.0010363888477753058
 71 人數70 8.404695663190771E-4
 72 人數71 6.79284274773569E-4
 73 人數72 5.47150054743283E-4
 74 人數73 4.3921951284882056E-4
 75 人數74 3.513759548782414E-4
 76 人數75 2.801383666838221E-4
 77 人數76 2.225759099077254E-4
 78 人數77 1.762315133316221E-4
 79 人數78 1.390540466029231E-4
 80 人數79 1.0933849833405421E-4
 81 人數80 8.567354107899968E-5
 82 人數81 6.689584752449988E-5
 83 人數82 5.2050521631153776E-5
 84 人數83 4.035702192591879E-5
 85 人數84 3.11799784969191E-5
 86 人數85 2.400433763667517E-5
 87 人數86 1.8414306049359104E-5
 88 人數87 1.4075607966145631E-5
 89 人數88 1.0720611641437018E-5
 90 人數89 8.135925100205447E-6
 91 人數90 6.152103542702944E-6
 92 人數91 4.635151631013028E-6
 93 人數92 3.479542361035658E-6
 94 人數93 2.6025099468439285E-6
 95 人數94 1.9394068652623725E-6
 96 人數95 1.4399448193644152E-6
 97 人數96 1.06516588303459E-6
 98 人數97 7.850135719021647E-7
 99 人數98 5.763941980275251E-7
100 人數99 4.216367984872279E-7
101 人數100 3.0727539996626477E-7
102 人數101 2.2309062461503145E-7
103 人數102 1.613588920166524E-7
104 人數103 1.1626695869354567E-7
105 人數104 8.345748027381826E-8
106 人數105 5.967788794695045E-8
107 人數106 4.251032895224462E-8
108 人數107 3.016490117628953E-8
109 人數108 2.1322066533069384E-8
110 人數109 1.5013090519920495E-8
111 人數110 1.052974268310542E-8
112 人數111 7.356405037887832E-9
113 人數112 5.119258363505299E-9
114 人數113 3.548422079017974E-9
115 人數114 2.44987271782621E-9
116 人數115 1.6847092295825918E-9
117 人數116 1.15391197594619E-9
118 人數117 7.871903280805647E-10
119 人數118 5.348588135548078E-10
120 人數119 3.6194604967979793E-10
121 人數120 2.4394205844381303E-10
122 人數121 1.6374215789642276E-10
123 人數122 1.094606648758393E-10
124 人數123 7.287391577494481E-11
125 人數124 4.8316473468394486E-11
126 人數125 3.1902155842246264E-11
127 人數126 2.0976790481129164E-11
128 人數127 1.3735507588484367E-11
129 人數128 8.956316810132223E-12
130 人數129 5.8154801275045396E-12
131 人數130 3.760151704975162E-12
132 人數131 2.4209232595975476E-12
133 人數132 1.5520463249241352E-12
134 人數133 9.907598662867073E-13
135 人數134 6.29744236698989E-13
136 人數135 3.985510872476768E-13
137 人數136 2.5114217835601535E-13
138 人數137 1.5756616612369978E-13
139 人數138 9.842505128717587E-14
140 人數139 6.121239160155489E-14
141 人數140 3.790143335118387E-14
142 人數141 2.336393590201922E-14
143 人數142 1.433843937796741E-14
144 人數143 8.76021195500924E-15
145 人數144 5.3281379650841086E-15
146 人數145 3.226083584972268E-15
147 人數146 1.9444920993801484E-15
148 人數147 1.1666972960842728E-15
149 人數148 6.968231742088301E-16
150 人數149 4.142764318879114E-16
151 人數150 2.451612872872876E-16
152 人數151 1.4441033488887312E-16
153 人數152 8.466813195809865E-17
154 人數153 4.940916544803405E-17
155 人數154 2.8697979695469803E-17
156 人數155 1.658982220223549E-17
157 人數156 9.544847334855884E-18
158 人數157 5.46541621106069E-18
159 人數158 3.114544581221222E-18
160 人數159 1.76633421435653E-18
161 人數160 9.968919621327157E-19
162 人數161 5.598993409966635E-19
163 人數162 3.1293067234718916E-19
164 人數163 1.7404124817288055E-19
165 人數164 9.631891585541229E-20
166 人數165 5.3041485533584616E-20
167 人數166 2.906388854346236E-20
168 人數167 1.584582480111398E-20
169 人數168 8.595835653650936E-21
170 人數169 4.63940624234323E-21
171 人數170 2.4913030305441853E-21
172 人數171 1.330973044114597E-21
173 人數172 7.074228636805817E-22
174 人數173 3.7406279378378165E-22
175 人數174 1.9676772495856125E-22
176 人數175 1.029663610098081E-22
177 人數176 5.359905203129384E-23
178 人數177 2.7754094773481293E-23
179 人數178 1.4295293658983514E-23
180 人數179 7.323907723068574E-24
181 人數180 3.732192152171627E-24
182 人數181 1.8916636669956916E-24
183 人數182 9.536081538054923E-25
184 人數183 4.781115856971393E-25
185 人數184 2.3840144855204884E-25
186 人數185 1.1822129468156427E-25
187 人數186 5.830106323404897E-26
188 人數187 2.8591555105072787E-26
189 人數188 1.3943315807841226E-26
190 人數189 6.761571232667588E-27
191 人數190 3.260382895176333E-27
192 人數191 1.5632015565451854E-27
193 人數192 7.451995173278288E-28
194 人數193 3.5320514395422914E-28
195 人數194 1.6644234763571782E-28
196 人數195 7.797732338337783E-29
197 人數196 3.63183107546654E-29
198 人數197 1.6815924746677324E-29
199 人數198 7.739955475628124E-30
200 人數199 3.5413053423047515E-30
201 人數200 1.61057116536134E-30
202 人數201 7.280686593494693E-31
203 人數202 3.2713323933076926E-31
204 人數203 1.4609009942182749E-31
205 人數204 6.484019649905391E-32
206 人數205 2.860083673207741E-32
207 人數206 1.2537394156314248E-32
208 人數207 5.461513105172664E-33
209 人數208 2.3641697794601874E-33
210 人數209 1.0169203240639937E-33
211 人數210 4.346304583123179E-34
212 人數211 1.845697430889915E-34
213 人數212 7.787353688669575E-35
214 人數213 3.2642996814747587E-35
215 人數214 1.3593845289569194E-35
216 人數215 5.6237758653215976E-36
217 人數216 2.311149383776688E-36
218 人數217 9.434590671291894E-37
219 人數218 3.825547308889449E-37
220 人數219 1.540705857348351E-37
221 人數220 6.162847688590297E-38
222 人數221 2.448264332325108E-38
223 人數222 9.65894494734862E-39
224 人數223 3.7842049201358714E-39
225 人數224 1.4722173566589267E-39
226 人數225 5.687219824825991E-40
227 人數226 2.1814087262180283E-40
228 人數227 8.307318636057621E-41
229 人數228 3.140863081846686E-41
230 人數229 1.1789045664531903E-41
231 人數230 4.3926506507983883E-42
232 人數231 1.6246864920466093E-42
233 人數232 5.964630353558949E-43
234 人數233 2.1734235686582143E-43
235 人數234 7.860090236801233E-44
236 人數235 2.8210324918437226E-44
237 人數236 1.0047562912485759E-44
238 人數237 3.551074402931366E-45
239 人數238 1.2453146675840465E-45
240 人數239 4.333035243861282E-46
241 人數240 1.495795423030422E-46
242 人數241 5.12261460585867E-47
243 人數242 1.7402950184095124E-47
244 人數243 5.864588383174268E-48
245 人數244 1.960229648503839E-48
246 人數245 6.498332842028368E-49
247 人數246 2.1364506621318907E-49
248 人數247 6.965455824118345E-50
249 人數248 2.251859584591692E-50
250 人數249 7.218333948093835E-51
251 人數250 2.294060188035423E-51
252 人數251 7.227906809894806E-52
253 人數252 2.257497826352238E-52
254 人數253 6.989011891945552E-53
255 人數254 2.1445878873395627E-53
256 人數255 6.521941922595186E-54
257 人數256 1.9655304045358402E-54
258 人數257 5.869707690407385E-55
259 人數258 1.7368027451077907E-55
260 人數259 5.09148655151868E-56
261 人數260 1.4786345624715487E-56
262 人數261 4.253638735795503E-57
263 人數262 1.212005123175935E-57
264 人數263 3.420205969367417E-58
265 人數264 9.557913172920543E-59
266 人數265 2.644814233825782E-59
267 人數266 7.246127387510261E-60
268 人數267 1.9654048575328666E-60
269 人數268 5.277023685478768E-61
270 人數269 1.402399666335672E-61
271 人數270 3.6885369352189833E-62
272 人數271 9.600391200109067E-63
273 人數272 2.4724530828879777E-63
274 人數273 6.299736335181651E-64
275 人數274 1.5878945528375195E-64
276 人數275 3.958900673165118E-65
277 人數276 9.761774449141333E-66
278 人數277 2.3802936164636327E-66
279 人數278 5.738852553593375E-67
280 人數279 1.3679061178710478E-67
281 人數280 3.22304841672974E-68
282 人數281 7.505816790809824E-69
283 人數282 1.7273867022622438E-69
284 人數283 3.928078130054646E-70
285 人數284 8.824834187987433E-71
286 人數285 1.9584130456989745E-71
287 人數286 4.292468752695527E-72
288 人數287 9.290674449052923E-73
289 人數288 1.9854319500577967E-73
290 人數289 4.1885051271614915E-74
291 人數290 8.721398452363574E-75
292 人數291 1.7920950827914942E-75
293 人數292 3.63334470890731E-76
294 人數293 7.26680462913946E-77
295 人數294 1.433475239216766E-77
296 人數295 2.7884506433561695E-78
297 人數296 5.3478058270752784E-79
298 人數297 1.0109730292337928E-79
299 人數298 1.8834910520811563E-80
300 人數299 3.4574322905015665E-81
301 人數300 6.251916814200046E-82
302 人數301 1.1133773515771803E-82
303 人數302 1.9522636493420678E-83
304 人數303 3.369732435059139E-84
305 人數304 5.724055188006599E-85
306 人數305 9.56644702516075E-86
307 人數306 1.5726036526515317E-86
308 人數307 2.54207876591672E-87
309 人數308 4.039569447862928E-88
310 人數309 6.308533415953783E-89
311 人數310 9.679107657439067E-90
312 人數311 1.458536596603439E-90
313 人數312 2.1578977935991347E-91
314 人數313 3.1334805796466244E-92
315 人數314 4.4642769889133005E-93
316 人數315 6.237960732218878E-94
317 人數316 8.54544233246896E-95
318 人數317 1.1472370130425093E-95
319 人數318 1.5087509775790893E-96
320 人數319 1.942850112793478E-97
321 人數320 2.4486219988417057E-98
322 人數321 3.0189760918612455E-99
323 人數322 3.639473933982971E-100
324 人數323 4.287797263191564E-101
325 人數324 4.934142460106241E-102
326 人數325 5.542743012662612E-103
327 人數326 6.074563384431801E-104
328 人數327 6.4909943254637144E-105
329 人數328 6.758148030622761E-106
330 人數329 6.851153981072421E-107
331 人數330 6.7577494475310795E-108
332 人數331 6.480487478442585E-109
333 人數332 6.03706680229222E-110
334 人數333 5.458600688642653E-111
335 人數334 4.786024515931745E-112
336 人數335 4.0652069499352986E-113
337 人數336 3.341586009428232E-114
338 人數337 2.655231198781569E-115
339 人數338 2.0371141942921878E-116
340 人數339 1.50708525796149E-117
341 人數340 1.073677804760819E-118
342 人數341 7.354978850568769E-120
343 人數342 4.836880495131281E-121
344 人數343 3.048399199819024E-122
345 人數344 1.8377226764725207E-123
346 人數345 1.057529652618079E-124
347 人數346 5.795953596854461E-126
348 人數347 3.017806763933968E-127
349 人數348 1.4886386877339791E-128
350 人數349 6.935509412587238E-130
351 人數350 3.0412786807910636E-131
352 人數351 1.2503363845348714E-132
353 人數352 4.798005970719257E-134
354 人數353 1.7097913604314834E-135
355 人數354 5.6247790605897E-137
356 人數355 1.6964224108450512E-138
357 人數356 4.652033303088953E-140
358 人數357 1.1484032661324103E-141
359 人數358 2.5207899688523915E-143
360 人數359 4.843970484385247E-145
361 人數360 7.984766959369045E-147
362 人數361 1.098347996087053E-148
363 人數362 1.2119876239193127E-150
364 人數363 1.0098578391715748E-152
365 人數364 5.757684771147015E-155

?

?

?

生日攻擊

?

生日攻擊是利用概率論中的生日問題,找到沖突的Hash值,偽造報文,使身份驗證算法失效。

?

生日攻擊的理論描述有些復雜,不易理解,請參考相關資料。
本文以實例方式介紹生日攻擊方法和防范方法。

?

實例場景

?

場景說明

?

A要對一個合同文件進行簽名,然后把合同文件和簽名一起發送給接收者。
簽名的方法:計算文件的Hash值(m位),然后使用A的私鑰對這個Hash值進行加密。

?

接收者使用A的公鑰進行解密,然后比較Hash值,這樣他就能確認:
接收到的合同文件是A發送的,并且合同文件未被修改過。

?

攻擊者B想要偽造一份假合同文件,然后發送給接收者,并使接收者仍然相信:
接收到的合同文件是A發送的,并且合同文件未被修改過。

?

攻擊方法

?

B先準備 2^m/2 個有效合同文件(集合X),每個文件包含與原合同文件相同的意思。
B再準備 2^m/2 個偽造合同文件(集合Y),每個文件也都是希望的偽造合同的意思。

?

注1:2^m/2 表示 2 的 m/2 次方。

注2:要產生包含相同意思的許多文件,也不是很難。
例如要生成 2^32 個文件,方法是:在文件中找到32個地方,每個地方使用兩種方式表達相同意思,這樣組合起來,就有了 2^32 個文件,這些文件要表達的意思都相同。

?

然后比較集合X和集合Y,找到Hash值相同的兩個文件,分別是有效合同和偽造合同。

?

B成功的概率會大于0.5,如果沒有找到匹配的文件,就準備更多的有效文件和偽造文件,直到找到一對匹配的文件。

?

注3:如果使用64位Hash值,那么只需要2^32個不同文件,這無法防住現代計算機系統。

?

B把找到的有效合同文件提供A,A看了一下,沒什么問題,就做了簽名,然后發送給接收者。

?

在接收者收到消息之前,B截獲了這個消息,然后使用偽造合同替換有效合同,再把偽造合同和原簽名一起發送給接收者。

?

因為偽造合同與有效合同的Hash值相同,所以它們產生相同的簽名。
這樣,即使B不知道A的私鑰,他也能成功!!!

?

遭遇失敗

?

如果A是一個認真的人,他在對B提供的有效合同文件進行簽名之前,又仔細閱讀了合同,修改了其中的標點符號問題,然后才對文件進行簽名。

?

這樣,B的計劃就失敗了。
B面臨的問題是:找到一個偽造合同,與新的合同文件具有相同的Hash值。
這幾乎是不可能的!!!

?

防范方法

?

    • 使用安全的Hash算法:安全的Hash算法生成的Hash值有足夠多的位數。這樣,攻擊者在尋找兩個具有相同Hash值的文件時就會非常困難。

    • 加鹽:在為文件簽名之前,先向文件添加一個隨機值,然后計算Hash值,再將文件、簽名和隨機值一起發送給接收者。這樣,攻擊者必須找出具有特定Hash值的偽造文件,這非常困難。

    • 改動文件:在為文件簽名之前,對消息或文件做少許改動。這樣,攻擊者必須找出具有特定Hash值的偽造文件,這非常困難。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395628.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

matlab simplify,[求助]Matlab2016b里沒有simple函數

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓function [r,h] simple(s,varargin)%SIMPLE Search for simplest form of a symbolic expression or matrix.% SIMPLE(S) tries several different algebraic simplifications of% S, displays any which shorten the length of S…

網龍面試后多久有回應_回應面試問題

網龍面試后多久有回應For the record, asking someone these questions probably isn’t the best way to get a deep understanding of their experience with React. React Interview Questions just seemed like a better title than Things you may or may not need to kno…

Bagging與隨機森林算法原理小結

在集成學習原理小結中&#xff0c;我們講到了集成學習有兩個流派&#xff0c;一個是boosting派系&#xff0c;它的特點是各個弱學習器之間有依賴關系。另一種是bagging流派&#xff0c;它的特點是各個弱學習器之間沒有依賴關系&#xff0c;可以并行擬合。本文就對集成學習中Bag…

iOS:多線程技術GCD的使用

GCD的使用&#xff1a; 1.隊列的類型1.1 主隊列&#xff1a;mian queue,主線程隊列,負責更行UI的操作。是一個串行的隊列。1.2 系統默認的并行隊列&#xff1a;global queue&#xff0c;按優先級分類。1.3 自定義的隊列&#xff1a;可以創建串行隊列或者是并行的隊列2.任務2.1 …

java什么叫一致性,java-順序一致性易失性說明

我正在從Java Jpoint會議觀看視頻.我對以下來自Alexey Shipilev報告的幻燈片有疑問&#xff1a;打擾一下,請不要打擾我.實際上,作者說不可能將變量集設置為r1 1 (Y)r2 0 (x)r3 1 (x)r4 0 (Y)根據視頻,他暗示很明顯.有人可以澄清為什么JMM無法設置此值嗎&#xff1f;附言如果…

模塊制作標準說明

原則一&#xff1a;CSS定義越少越好原則二&#xff1a;進來用<ul><li>等簡單的HTML代碼結構原則三&#xff1a;命名盡可能用CSS偽類原則四&#xff1a;一個模塊CSS名稱不能超過三個需要改正的寫法&#xff1a; <div class"fenglei"><div class&…

【c++】string類的使用

目錄 一、標準庫中的string類 1、簡單介紹string類 2、string類的常用接口注意事項 2.1、string類對象的常用構造 2.2、string類對象的容量操作 2.3、string類對象的訪問及遍歷操作 2.4、string類對象的修改操作 二、string類的模擬實現 一、標準庫中的string類 1、簡…

拜托了

by Buddy Reno由Buddy Reno Git Please &#xff1a;如何在不做蠢事的情況下強行推動 (Git Please: how to force push without being a jerk) As the size of a dev team grows, so does the likelihood of someone doing a force push and overwriting someone else’s code…

性能測試類型

1.驗收性能測試 驗收性能測試&#xff08;Acceptance Performance Testing&#xff09;方法通過模擬生產運行的業務壓力量和使用場景組合&#xff0c;測試系統的性能是否滿足生產性的要求。通俗的說&#xff1a;在特定的運行條件下驗證系統的能力狀況。 &#xff08;1&#xff…

Java - 對象(object) 具體解釋

對象(object) 具體解釋 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24059545 對象(object)的實例能夠是 物理對象(如 人, 車等實物) 或 邏輯對象(如 運動, 健康等); 對象是將狀態(數據) 和行為(功能) 組合在一起的軟件模塊. 類是描寫敘述一組相似對象共同…

kkt條件的matlab仿真,請教關于SVM中KKT條件的推導

KKT條件第一項是說最優點必須滿足所有等式及不等式限制條件&#xff0c;也就是說最優點必須是一個可行解&#xff0c;這一點自然是毋庸置疑的。第二項表明在最優點 x*&#xff0c; ?f 必須是 ?hj 和 ?gk 的線性組合&#xff0c;和都叫作拉格朗日乘子。所不同的是不等式限制條…

公共wifi做家用_如何在公共網絡上獲得免費的wifi

公共wifi做家用by Kyle McDonald凱爾麥克唐納(Kyle McDonald) 如何在公共網絡上獲得免費的wifi (How to get free wifi on public networks) This short tutorial describes a few methods for gaining access to the internet, a basic human right, from public wireless ne…

python學習之旅

一、入門 1.Python 面向對象編程 2.jquery入門 3.HTMLCSS基礎入門 4.Javascript初步 5.Python語言編程基礎 二、初級階段 1.Git 與 GitHub 2.Python 爬蟲基礎 3.django進階 4.django項目部署 5.ajax入門 6.django基礎 7.Mysql基礎 三、中級階段 1.Linux基礎 2.Python :socket a…

c/c++ 重載運算符 函數調用運算符

重載運算符 函數調用運算符 把一個類的對象a&#xff0c;當成函數來使用&#xff0c;比如a()&#xff0c;所以需要重載operator()方法。重載了函數調用運算符的類的對象&#xff0c;就是函數對象了。 還有什么是函數對象呢&#xff1f;&#xff1f;&#xff1f; lambda是函數對…

matlab 萬能,matlab 萬能實用的線性曲線擬合方法

在科學計算和工程應用中&#xff0c;經常會遇到需要擬合一系列的離散數據&#xff0c;最近找了很多相關的文章方法&#xff0c;在這里進行總結一下其中最完整、幾乎能解決所有離散參數線性擬合的方法第一步&#xff1a;得到散點數據根據你的實際問題得到一系列的散點例如&#…

socket websocket

1.websocket客戶端 websocket允許通過JavaScript建立與遠程服務器的連接&#xff0c;從而實現客戶端與服務器間雙向的通信。在websocket中有兩個方法&#xff1a;      1、send() 向遠程服務器發送數據    2、close() 關閉該websocket鏈接  websocket同時還定義了幾…

javascript原型_JavaScript的原型:古怪,但這是它的工作原理

javascript原型by Pranav Jindal通過普拉納夫金達爾 JavaScript的原型&#xff1a;古怪&#xff0c;但這是它的工作原理 (Prototype in JavaScript: it’s quirky, but here’s how it works) The following four lines are enough to confuse most JavaScript developers:以下…

mysql函數之SUBSTRING_INDEX(str,/,-1)

SUBSTRING_INDEX的用法&#xff1a; ?SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出現前&#xff0c;從字符串str返回自字符串。若count為正值,則返回最終定界符(從左邊開始) 若為-1則是從后往前截取 SELECT substring_index(Hn_P00001, P, -1) -- 結果是…

mysql8.0主從配置,MySQL 8.0主從服務器(Master-Slave)配置

一、介紹MySQL 主從復制的方式有多種&#xff0c;本文主要演示基于基于日志(binlog)的主從復制方式。MySQL 主從復制(也稱 A/B 復制) 的原理&#xff1a;Master將數據改變記錄到二進制日志(binary log)中&#xff0c;也就是配置文件log-bin指定的文件&#xff0c; 這些記錄叫做…

第十二章 Shell腳本編寫及常見面試題(三)

本章目錄&#xff1a;12.21 FTP下載文件#!/bin/bash if [ $# -ne 1 ]; thenecho "Usage: $0 filename" fi dir$(dirname $1) file$(basename $1) ftp -n -v << EOF # -n 自動登錄 open 192.168.1.10 user admin adminpass binary # 設置ftp傳輸模式為二進制…